jQuery Selectors - where item does not have children with a certain class

后端 未结 4 386
南方客
南方客 2021-01-17 22:39

I want to select list items that are immediate children of #nav, that do not themselves have immediate children with an \'active\' class.

This is what I think it sho

相关标签:
4条回答
  • 2021-01-17 22:50

    You'll need to use jQuery's filter function:

    $('#nav > li').filter(function() { return !($(this).children().is('.active')); })
    
    0 讨论(0)
  • 2021-01-17 22:57

    For this jquery has the not selector

    you can do something like

    $("#nav > li").children(":not(.active)");
    
    0 讨论(0)
  • 2021-01-17 23:04

    I really like Ken's solution, but just for an alternative take.

    You could add the active class to your list items instead of your links inside. Then your selector could look like:

    $("ul#nav li:not(.active)");
    

    If you want to style the links based on the active class, your CSS could look like this:

    #nav li.active a{background-color:red;}
    
    0 讨论(0)
  • 2021-01-17 23:13

    This is how you do it:

        $('#nav > li:not(:has(a.active))')
    
    0 讨论(0)
提交回复
热议问题