我想将最接近的prev Tr与其子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()
或siblings()+prev()
使用它的子tr来定位父tr?
答案 0 :(得分:2)
想到的一个黑客是
var parents = $('.parent');
$('.child').each(function () {
var tr = this
var p = $(tr).prevAll(parents).first()[0];
console.log(tr, p)
})
演示:Fiddle
答案 1 :(得分:2)
它会起作用
$(this).parent("tr").prev('tr.parent');
答案 2 :(得分:2)
使用next siblings selector:
您可以按~
或+
$($(tr).prev() + $(prev).find('*'))
答案 3 :(得分:1)
是。你可以这样做:
$(this).parent("tr").sibling();
或选择以前的所有兄弟姐妹:
$(this).parent("tr").prevAll("tr");
而是选择所有下一个:
$(this).parent("tr").nextAll("tr");