我有这样的表格行:
<tr class="parent0 row3" data-parent="0">
<td>...</td>
</tr>
<tr class="parent3 row7" data-parent="3">
<td>...</td>
</tr>
<tr class="parent3 row12" data-parent="3">
<td>...</td>
</tr>
<tr class="parent0 row8" data-parent="0">
<td>...</td>
</tr>
<tr class="parent0 row9" data-parent="0">
<td>...</td>
</tr>
所以如果我有一个点击处理程序:
$(document).on({
"click": function(){
var parentId = $(this).data("parent");
//get previous sibling:
//OPTION A:
var prevParentA =
$(this).prev("parent" + parentId); //works sometimes
//OPTION B:
var prevParentB =
$(this).prevAll("parent" + parentId).eq(0); //works all the time but ugly...
}
}, "tr");
选项 A仅在直接上一个项目具有相同父项时才有效,但当情况并非如此时,prevParentA === []
这不是所需的结果。
选项 B似乎总是有效,但它很难看,因为它选择了与该类匹配的所有先前项目并选择它找到的第一个项目。
有比选项 B更好的选择吗?