代码之家  ›  专栏  ›  技术社区  ›  fire

选择所有的li's,但不选择子级

  •  8
  • fire  · 技术社区  · 15 年前

    我有这个代码:

    $li = $("li", this)
    

    它选择了所有 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 = $("li", this).parents()
    

    但这不是我想要的。

    4 回复  |  直到 8 年前
        1
  •  20
  •   Andy E    15 年前

    只需使用子选择器 > :

    $("#navigation > li")
    
        2
  •  14
  •   David Hedlund    15 年前

    要使用直接子选择器, > 以下内容:

    $li = $('#navigation > li');
    
        3
  •  5
  •   harpax    15 年前
    var li = $("#navigation > li");
    

    这个 > 仅选择直接子级

        4
  •  0
  •   Ergec    8 年前

    未来的谷歌用户可能会发现,如果他们在这里(像我一样)寻找这个答案是有用的。 选择所有没有任何子项的li's

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

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