得到每个第一级李

时间:2011-08-09 07:39:24

标签: jquery each

我有这个清单

<ul>
    <li>
       <ul>
           <li></li>
           <li></li>
           <li></li>
       </ul>
    </li>
    <li></li>
    <li></li>
    <li></li>
</ul>

我只需要获得第一级lis

提前致谢

4 个答案:

答案 0 :(得分:3)

假设第一个ulbody的直接子项,您可以使用此选择器:

$('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,那么请带上它的孩子。