3

这是示例 html 代码:

<div id="current_element">Current element</div>
Many unknown tags...
<div class="target">This is target element</div>
Many other tags...

注意目标元素和当前元素可能不在同一个父元素下,所以我无法使用 .nextAll('.target') 找到它,对吧?

有什么简单的方法可以找到吗?谢谢!

4

2 回答 2

10

由于元素按文档顺序返回,因此您可以使用.index()在包含两者的集合中查找下一个,如下所示:

var ce = $("#current_element"), all = $("#current_element, .target");
var target = all.eq(all.index(ce)+1);

你可以在这里测试一下

于 2010-10-27T09:17:36.027 回答
2

您评论中的 html 与问题中的不同

<div id="area1">
  <div id="current_element">Current</div>
</div>
<div id="area2">
  <div class="target">Target</div>
</div>

我要做的是用 div 包装它们:

<div id="mainparent">
  <div id="area1">
    <div id="current_element">Current</div>
  </div>
  <div id="area2">
    <div class="target">Target</div>
  </div>
<div>

然后我回去找到另一个孩子:

//this = .current_element
var $target = $(this).closest("#mainparent").find(".target");

我希望这有帮助!

于 2010-10-27T08:16:35.777 回答