是否有类似于 jQuery
.closest()
但用于遍历后代并仅返回最接近的后代的函数?
我知道有 .find()
函数,但它会返回所有可能的匹配项,而不是最接近的匹配项。
编辑:
这是最接近的定义(至少对我而言):
首先遍历所有children,然后遍历每个单独的children。
在下面给出的示例中,id='2'
是 id="find-my-closest-descendant"
的最接近 .closest
后代
<div id="find-my-closest-descendant">
<div>
<div class="closest" Id='1'></div>
</div>
<div class="closest" Id='2'></div>
</div>
请参阅JSfiddle link .
最佳答案
如果“最近的”后代是指第一个 child ,那么您可以:
$('#foo').find(':first');
或者:
$('#foo').children().first();
或者,要查找特定元素的第一次出现,您可以这样做:
$('#foo').find('.whatever').first();
或者:
$('#foo').find('.whatever:first');
但实际上,我们需要对“最近的后代”的含义有一个明确的定义。
例如
<div id="foo">
<p>
<span></span>
</p>
<span></span>
</div>
哪个<span>
会 $('#foo').closestDescendent('span')
返回?
关于jquery - 类似于 jQuery .closest() 但遍历后代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8961770/