我的桌子看起来像这样:

<table>
    <tr>...</tr>
    <tr class="gotChild">...</tr>
    <tr class="gotParent">...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr class="gotChild">...</tr>
    <tr class="gotParent">...</tr>
    <tr class="gotParent">...</tr>
    <tr class="gotParent">...</tr>
    <tr class="gotParent">...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    <tr class="gotChild">...</tr>
    <tr class="gotParent">...</tr>
    <tr class="gotParent">...</tr>
</table>


.gotParent行内(显然)是带有按钮的表单元格。单击它时,我想影响最近的.gotChild表行。

如果.gotChild是前一行,那很容易,我使用:

$('.button').on('click', function() {
    var gotChild = $(this).parent().parent().prev('.gotChild');
}


但是,如果有更多.gotParent行作为前几行,则此功能无效。

使用.prevAll()影响所有.gotChild行(应仅是它找到的第一行。

使用.prevUntill()会影响所有表行,而只应影响.gotChild行。

如何定位此特定行?

最佳答案

您可以使用下面的代码选择最接近的先前同级:

var gotChild = $(this).parent().parent().prevAll(".gotChild:first");

关于jquery - 在类中查找上一个表行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32170646/

10-11 05:51