-6

我有这个代码

<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');
4

1 回答 1

1

这些做不同的事情。

.closest('.DivB')将向上遍历 DOM 树,直到找到与选择器匹配的元素(可能没有)。

.parent().next()会做它看起来会做的事情,找到父母然后是它的下一个兄弟。

您想要的是.closest('td').find('.DivB')并且不必担心微优化。当 DOM 发生轻微变化时它不会中断,并且可以在单个表格单元格的范围内工作,这可能是您需要的。

编辑:这个问题已经过大量编辑,但.closest()仍然没有按照你的想法做。现在你想要$('.LinkB').siblings(".LinkG");

于 2013-09-18T20:20:21.703 回答