假设我有以下HTML:
<div class="foo">
<ul>
<li>One</li>
<li>Two</li>
</ul>
</div> <!-- not originally here -->
<div class="bar">
<ul>
<li>Three</li>
<li>Four</li>
</ul>
</div>
我想选择所有li
未与类元素的后代元素foo
。 我知道我可以看上做过滤功能 ,但我不知道我是否可以只选择这样做。 首先我想:
$(":not(.foo) li")
不幸的是,这并不工作,因为li
有其他的祖先没有风格(在ul
在这种情况下)。 下面似乎工作;
$(":not(.foo) :not(.foo) li")
换句话说,选择所有li
有没有祖先,要么具有类元素foo
还是有它自己的带班的祖先foo
。 也许这是一个选择做最好的/唯一的办法,但我不激动不已的重复:not
选择。 更好的想法了吗?
小提琴