给定以下假设标记:
<ul class="monkey">
<li>
<p class="horse"></p>
<p class="cow"></p>
</li>
</ul>
<dl class="monkey">
<dt class="horse"></dt>
<dd class="cow">
<dl>
<dt></dt>
<dd></dd>
</dl>
<dl class="monkey">
<dt class="horse"></dt>
<dd class="cow"></dd>
</dl>
</dd>
</dl>
我希望能够在每个猴子班级中掌握马和牛班级的“第一级”.但是我不想要嵌套的马和牛课程.
我从.children开始,但是不适用于UL示例,因为它们不是.monkey的直接子级.
我可以使用find:$(‘.monkey’).find(‘.horse,.cow’),但是它返回所有实例,包括嵌套实例.
我可以过滤找到的内容:$(‘.monkey’).find(‘.horse,.cow’).not(‘.cow .horse,.cow .cow’),但这阻止了我第二次选择嵌套实例函数调用.
所以…我想我要寻找的是“找到这个后代的第一个”等级”.
我可能可以使用一些循环逻辑来做到这一点,但想知道是否有一个选择器和/或一些选择器组合可以实现该逻辑.
更新:
我最终得到的是:
$('.monkey')
.children('.cow')
...do something...
.end()
.children('li')
.children('.cow')
...do something...
.end()
.end()
似乎冗长/ hacky,但似乎可以工作.
最佳答案
使用子项,因为它给您直接的子项元素.
原文链接:https://www.f2er.com/jquery/531034.html$(".monkey").children(".horse,.cow,li > .horse,li > .cow")
已编辑
$(".monkey,.monkey > li").children(".horse,.cow")