我有一系列随机嵌套的类“foo”的 div。使用 jQuery,我想选择所有不在节点升序分支中的 div。
例如在以下结构中,如果考虑的节点是“1_1_1”,则操作将选择除父级“bar1_1”和父级“bar1”的父级之外的所有“foo”div:
<div class="foo" id="bar1">
...
<div class="foo" id="bar1_1">
...
<div class="foo" id="bar1_1_1">
...
<div class="foo" id="bar1_1_1_1">
...
</div>
...
</div>
...
<div class="foo" id="bar1_1_2">
...
<div class="foo" id="bar1_1_2_1">
...
</div>
...
</div>
...
</div>
...
</div>
...
<div class="foo" id="bar2">
...
<div class="foo" id="bar2_1">
...
</div>
...
<div class="foo" id="bar2_2">
...
</div>
...
</div>
...
(注意反射(reflect)节点在树中位置的ids只是为了举例。实际节点甚至没有ids。)
一个解决方案是选择所有节点,然后从选择中删除所考虑的节点及其所有上升节点,但我不知道如何做最后一部分。有什么想法吗?
最佳答案
查看 http://api.jquery.com/not/或 http://api.jquery.com/not-selector/ 我不知道性能,但两者都应该结合 :has()
$('.foo:not(:has(#bar1_1_1))').css('background','pink');
关于javascript - jQuery 选择类的所有节点,但当前 DOM 分支中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096014/