开发者

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

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 thin开发者_运维知识库k it should be but it does not work:

$('#nav > li:not(> a.active)')


This is how you do it:

    $('#nav > li:not(:has(a.active))')


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

$('#nav > li').filter(function() { return !($(this).children().is('.active')); })


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;}


For this jquery has the not selector

you can do something like

$("#nav > li").children(":not(.active)");
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜