假设我有以下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>
我想选择不是类foo的元素的后代的所有li元素.我知道我可以做一个奇怪的filter function,但我想知道是否可以做一个选择器.首先我试过:
$(":not(.foo) li")
不幸的是,这不起作用,因为李没有其他祖先没有风格(在这种情况下是ul).以下似乎工作;
$(":not(.foo) :not(.foo) li")
换句话说,选择所有没有祖先的所有的li元素,既没有类foo,也没有拥有自己的祖先类foo.也许这是使用选择器来做最好的/唯一的方法,但是我并不感到非常重视:not selector.有什么更好的想法吗?
解决方法
你可以这样做
$("li").not('.foo li')
要么
$("li:not(.foo li)")
选择没有类foo的祖先的所有li