jQuery选择器 – 其中item没有具有某个类的子项

我想选择#nav的直接子项列表项,这些项目本身不具有“活动”类的直接子项。

这是我认为它应该是但它不起作用:

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

你需要使用jQuery的filterfunction:

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

这是你如何做到的:

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

我真的很喜欢Ken的解决方案,但只是为了另一种选择。

您可以将活动类添加到列表项而不是内部链接。 然后你的选择器看起来像:

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

如果要根据活动类设置链接的样式,CSS可能如下所示:

 #nav li.active a{background-color:red;} 

对于这个jquery有not选择器

你可以做点什么

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