我有这个清单
<ul>
<li>
<ul>
<li></li>
<li></li>
<li></li>
</ul>
</li>
<li></li>
<li></li>
<li></li>
</ul>
我只需要获得第一级lis
提前致谢
答案 0 :(得分:3)
假设第一个ul
是body
的直接子项,您可以使用此选择器:
$('body > ul > li');
答案 1 :(得分:3)
你不能使用直接子选择器吗?
$("body > ul > li")
那应该只返回作为ul的直接子节点的li标签,而这个:
$("ul li")
会返回所有后代li标签,并且会在所有级别的ul下找到li后代。
如果您在UL上设置了想要获得第一级li标签的ID,那么整个选择器会更好。然后,您的选择器可能是这样的:
$("#myID > li")
并且它将独立于DOM所在的位置(而第一个必须是body标签的直接子项)。
答案 2 :(得分:0)
尽量将其作为一般应用程序保存:
$('ul').filter(function(){
return ($(this).closest('li').length == 0);
}).children('li');
@Kokos或@jfriend00的回答都很棒。唯一的问题是<ul>
不是<body>
的直接后裔。
如果这是一次性场景,可能会更多地发布一下,我们可以指定;如果不了解更多关于文档结构的信息,则需要进行循环推广(参见上面)。
答案 3 :(得分:0)
在Kokos和jfriend00的答案之上,您可以使用:
$(selector).children();
仅选择选择器的直接子项。如果您已经在选择器中选择了HTML,那么请带上它的孩子。