-2

我想用它的子 Tr 来定位最近的 prev Tr。我的桌子是这样的:

<table>
    <tr class="parent">
        <td>Apple</td>
        <td>Orange</td>
        <td>Banana</td>
    </tr>
    <tr class="child">
        <td>Apple 1</td>
        <td>Orange 1</td>
        <td>Banana 1</td>
    </tr>
    <tr class="child">
        <td>Apple 2</td>
        <td>Orange 2</td>
        <td>Banana 2</td>
    </tr>
    <tr class="parent">
        <td>Table</td>
        <td>cHAIR</td>
        <td>Mouse</td>
    </tr>
    <tr class="child">
        <td>Table 1</td>
        <td>cHAIR 1</td>
        <td>Mouse 1</td>
    </tr>
    <tr class="child">
        <td>Table 2</td>
        <td>cHAIR 2</td>
        <td>Mouse 2</td>
    </tr>
</table>

closest()+prev()是否可以使用or来定位父 tr 及其子 tr siblings()+prev()

4

4 回答 4

2

我想到的一个技巧是

var parents = $('.parent');
$('.child').each(function () {
    var tr = this
    var p = $(tr).prevAll(parents).first()[0];
    console.log(tr, p)
})

演示:小提琴

于 2013-10-29T07:31:34.910 回答
2

它会工作

$(this).parent("tr").prev('tr.parent');
于 2013-10-29T07:34:15.647 回答
2

使用下一个兄弟选择器:您可以通过~或组合多个选择器+

$($(tr).prev() + $(prev).find('*'))

于 2013-10-29T07:35:32.447 回答
1

是的。你可以这样做:

$(this).parent("tr").sibling();

或者选择以前的所有兄弟姐妹:

$(this).parent("tr").prevAll("tr");

而是选择所有下一个:

$(this).parent("tr").nextAll("tr");
于 2013-10-29T07:32:12.183 回答