选择所有li但不是孩子

时间:2010-03-12 12:37:00

标签: jquery

我有这段代码:

$li = $("li", this)

在我的代码中选择所有li。这项工作正常,但我希望$li排除子菜单中的li

    <ul id="navigation">
        <li><a href="#">blah 1</a></li>
        <ul id="subnav">
            <li><a href="#">sub 1</a></li>
            <li><a href="#">sub 2</a></li>
            <li><a href="#">sub 3</a></li>
        </ul>
        </li>
        <li><a href="#">blah 2</a></li>
        <li><a href="#">blah 3</a></li>
        <li><a href="#">blah 4</a></li>
        <li><a href="#">blah 5</a></li>
    </ul>

所以$li只会引用blah而不是sub。

我认为它是这样的:

$li = $("li", this).parents()

但这不符合我的要求。

4 个答案:

答案 0 :(得分:20)

只需使用子选择器>

$("#navigation > li")

答案 1 :(得分:14)

您想使用直接子选择器>

$li = $('#navigation > li');

答案 2 :(得分:5)

var li = $("#navigation > li");

>仅选择直接儿童

答案 3 :(得分:0)

未来的Google员工可能会发现这个答案很有用,如果他们在这里(像我一样)寻找选择所有没有孩子的人

$("#mylist li:not(:has(ul))")

$("#mylist li:not(:has(li))")