选择第一个类实例,但不通过jQuery选择嵌套实例

前端之家收集整理的这篇文章主要介绍了选择第一个类实例,但不通过jQuery选择嵌套实例 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

给定以下假设标记

  1. <ul class="monkey">
  2. <li>
  3. <p class="horse"></p>
  4. <p class="cow"></p>
  5. </li>
  6. </ul>
  7. <dl class="monkey">
  8. <dt class="horse"></dt>
  9. <dd class="cow">
  10. <dl>
  11. <dt></dt>
  12. <dd></dd>
  13. </dl>
  14. <dl class="monkey">
  15. <dt class="horse"></dt>
  16. <dd class="cow"></dd>
  17. </dl>
  18. </dd>
  19. </dl>

我希望能够在每个猴子班级中掌握马和牛班级的“第一级”.但是我不想要嵌套的马和牛课程.

我从.children开始,但是不适用于UL示例,因为它们不是.monkey的直接子级.

我可以使用find:$(‘.monkey’).find(‘.horse,.cow’),但是它返回所有实例,包括嵌套实例.

我可以过滤找到的内容:$(‘.monkey’).find(‘.horse,.cow’).not(‘.cow .horse,.cow .cow’),但这阻止了我第二次选择嵌套实例函数调用.

所以…我想我要寻找的是“找到这个后代的第一个”等级”.
我可能可以使用一些循环逻辑来做到这一点,但想知道是否有一个选择器和/或一些选择器组合可以实现该逻辑.

更新:

我最终得到的是:

  1. $('.monkey')
  2. .children('.cow')
  3. ...do something...
  4. .end()
  5. .children('li')
  6. .children('.cow')
  7. ...do something...
  8. .end()
  9. .end()

似乎冗长/ hacky,但似乎可以工作.

最佳答案
使用子项,因为它给您直接的子项元素.

  1. $(".monkey").children(".horse,.cow,li > .horse,li > .cow")

已编辑

  1. $(".monkey,.monkey > li").children(".horse,.cow")

猜你在找的jQuery相关文章