【发布时间】:2013-06-11 00:28:07
【问题描述】:
我想选择是#nav 的直接子级的列表项,它们本身没有具有“活动”类的直接子级。
这是我认为应该的,但它不起作用:
$('#nav > li:not(> a.active)')
【问题讨论】:
标签: jquery css-selectors
我想选择是#nav 的直接子级的列表项,它们本身没有具有“活动”类的直接子级。
这是我认为应该的,但它不起作用:
$('#nav > li:not(> a.active)')
【问题讨论】:
标签: jquery css-selectors
这就是你的做法:
$('#nav > li:not(:has(a.active))')
【讨论】:
你需要使用 jQuery 的 filter 函数:
$('#nav > li').filter(function() { return !($(this).children().is('.active')); })
【讨论】:
li。
filter
我真的很喜欢 Ken 的解决方案,但只是为了另一种选择。
您可以将活动类添加到列表项中,而不是里面的链接。然后你的选择器可能看起来像:
$("ul#nav li:not(.active)");
如果您想根据活动类设置链接样式,您的 CSS 可能如下所示:
#nav li.active a{background-color:red;}
【讨论】:
li 的孩子。 Trevor 想要 li 元素本身。重新阅读问题。
【讨论】: