以下是示例html代码:
<div id="current_element">Current element</div>
Many unknown tags...
<div class="target">This is target element</div>
Many other tags...
注意,目标元素和当前元素可能不在同一个父元素下,所以我无法用.nextAll('。target')找到它,对吧?
有没有简单方式来查找它?谢谢!
答案 0 :(得分:10)
由于元素是按文档顺序返回的,因此您可以使用.index()
查找包含两者的集合中的下一个元素,如下所示:
var ce = $("#current_element"), all = $("#current_element, .target");
var target = all.eq(all.index(ce)+1);
答案 1 :(得分:2)
评论中的html与问题中的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");
我希望这有帮助!