javascript - jQuery 选择类的所有节点,但当前 DOM 分支中的节点

标签 javascript jquery jquery-selectors

我有一系列随机嵌套的类“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');

http://jsfiddle.net/d1492pcf/

关于javascript - jQuery 选择类的所有节点,但当前 DOM 分支中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096014/

相关文章:

javascript - 在 slideToggle 回调中传递动态创建的 ID

javascript - Jquery - 必须向 Jquery 对象添加剩余 [0]

jquery - 分页在带有 MVC 的 JqGrid 中不起作用

javascript - 如何使用 d3.js 将层次图的曲线变为直线

javascript - iOS Webview 检测键盘何时打开?

jquery - 将 css 样式添加到动态生成的元素(jquery、css)

javascript - jQuery 不是带有 [name] 选择器的选择器

javascript - 如何获取 $(this) 选择器的特定子级(两个子级中的一个)?

jquery - (Bootstrap 3) 如何保留我的底部导航栏而不是 3 跨度图标

javascript - 更改根据点击显示的 anchor ?