我有这段代码
<td>
<div class='DivA'>
<a href='#' class='LinkA'>Upload</a>
<a href='#' class='LinkB'>Upload</a>
<a href='#' class='LinkC'>Upload</a>
<a href='#' class='LinkD'>Upload</a>
<a href='#' class='LinkE'>Upload</a>
<a href='#' class='LinkF'>Upload</a>
<a href='#' class='LinkG'>Upload</a>
</div>
<div class='DivB'>Some Stuff</div>
</td>
点击LinkB访问LinkG的最有效方法是什么。我已经提出了这些最好的解决方案(在我看来),但是遇到的是最快的解决方案。
$('.LinkB').closest(".LinkG");
或
$('.LinkB').parent().find('.LinkG');
答案 0 :(得分:1)
这些做不同的事情。
.closest('.DivB')
将遍历DOM树,直到找到与选择器匹配的元素(可能没有)。
.parent().next()
会做它看起来会做的事情,找到父母然后是下一个兄弟。
您想要的是.closest('td').find('.DivB')
,不要担心微观优化。当DOM稍微改变时它不会中断,并且可以在单个表格单元格的范围内工作,这可能是你需要的。
编辑:问题已经过严格修改,但.closest()
仍然没有按照您的想法执行。现在你需要$('.LinkB').siblings(".LinkG");