基本上我希望能够从子 level4 div 中选择 div level2 parent。我的应用程序没有这样的类,否则我只选择 level2 :)
<div class="level1">
<div class="level2">
<div class="level3">
<div class="level4"></div>
</div>
</div>
<div class="level2"> <!-- this is hidden -->
<div class="level3">
<div id="start" class="level4"></div>
</div>
</div>
</div>
我从 $('#start')
开始并搜索可见的第一个父项,但我没有找到返回该父项的子项的方法。在父级中搜索 $('#start')
似乎非常浪费,因为我从子级开始。
$('#start').closest(':visible') // returns level1
$('#start').closest(':visible').first() // returns the first level2. I can't just use second because the number of level2s can change.
$('#start').closest(':visible').children().each(function(){ /* do some search to check it contains `$('#start')` }) // seems very wasteful.
查看我要说的内容的另一种方式是;从中间开始,找到外面(可见元素),然后将一个元素移入。
最佳答案
这个怎么样:-
$('#start').parentsUntil(':visible').last();
这将为您提供所有隐藏的父 div,直到它的可见父 div 和 last() 将给出隐藏的最外层父 div。 last 不是位置上的选择器,它是集合中的 last()。
关于javascript - jQuery 选择最近元素的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16742149/