在jquery中只选择第一级元素

新手上路,请多包涵

我怎样才能从这样的列表中选择只有父 <ul> 的链接元素?

 <ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a>
  <ul>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
    <li><a href="#">Link</a></li>
  </ul>
</li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>

所以在 css ul li a 中,而不是 ul li ul li a

谢谢

原文由 aston 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 552
2 个回答
$("ul > li a")

但是如果你特别想定位最外层的 ul,你需要在根 ul 上设置一个类:

 <ul class="rootlist">
...

然后是:

 $("ul.rootlist > li a")....

确保只有根 li 元素的另一种方法:

 $("ul > li a").not("ul li ul a")

它看起来很笨拙,但它应该可以解决问题

原文由 Philippe Leybaert 发布,翻译遵循 CC BY-SA 2.5 许可协议

一旦有了初始 ul,就可以使用 children() 方法,该方法将只考虑元素的直接子元素。正如@activa 指出的那样,轻松选择根元素的一种方法是给它一个类或一个 id。以下假设您有一个 root ul id root

 $('ul#root').children('li');

原文由 tvanfosson 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题