需要帮助在 ASP.NET Web 表单中使用 jQuery 遍历元素

Need help traversing elements with jQuery in ASP.NET Web Forms

所以第一张图片就是我的页面的样子。每当单击突出显示的按钮时,我都试图在顶部获取 table 的 ID(具有 class trackingHistory 和 ContentPlaceHolder1_ctl00_myRpt_ctl00_0_gdvTH_0 ID 的 table)。

现在我可以单击按钮并触发 Javascript 方法 'ToggleHistory()' 并使用 jQuery 获取按钮的 ID。 (.attr('id'))

但这就是我所能得到的。我试过弄乱 jQuery 中的 closest() 和 prev() 方法,但没有任何运气。任何帮助,将不胜感激。

javascript方法

function ToggleHistory(button)
{
    console.log(button);
    var x = $(button).prev();
    var y = $(button).closest('table').find('.trackingHistory');
    //var z = $(button).closest('.trackingHistory');

    console.log(x);
    console.log(y);
    console.log($(y).attr('id'));
    //console.log(z);
}

我不想对 ID 进行硬编码,因为这些 table 和按钮的数量是动态的。

<button><table> 没有直接关系,但确实有 <div> 的共同点。

<div>
  <table class="toggleHistory"></table>
</div>
<button type="button" onclick="ToggleHistory(this)">click here to hide</button>

<button><div> 是直系兄弟,您可以使用 .prev() and back with .next() 在它们之间遍历。

$(button).prev()...

那么<div><table>就是.parent() and child (.children()):

$(button).prev().children('.trackingHistory');

function ToggleHistory(button)
{
    console.log(button);

    var $historyTable = $(button).prev().children('.trackingHistory');

    console.log($historyTable.attr('id'));
}