使用类查找上一个表行

时间:2015-08-23 19:28:18

标签: jquery

我的表格如下:

<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行的表格行。

如何定位此特定行?

2 个答案:

答案 0 :(得分:3)

您可以使用以下代码选择最近的兄弟姐妹:

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

答案 1 :(得分:0)

 $(this).prevAll(".gotChild").eq(0);

只会选择第一个匹配值