首页 > 解决方案 > 不包括具有特定类的节点(或其子节点)的 Jquery 选择器

问题描述

我有一个元素(div),它的子元素中也有一个类。我需要一个选择器来查找主元素及其所有子元素,但不包括具有相同类(或其子元素)的任何子元素。

我需要一个给我根的选择器,以及任何没有“子”类的后代。

<div class="foo child">
  <div class="foo child">
    I don’t want this or any child.
    <div class="foo">
      I don’t want this either.
    </div>
  </div>
  <div class="foo">
   I do want this and any children.
  </div>
</div>

我在 :not 尝试了各种尝试,但没有找到一种有效的方法。

具体原因。我正在使用 jquery.resizable 并且我正在调整大小的元素是一个包含一些子元素的组,这些子元素也具有“可调整大小”类。在调整父级的大小时,我不想同时调整子级的大小 - 这是正在发生的事情,因为该类也存在于子级中。

TIA,威尔

标签: jqueryjquery-ui

解决方案


试试这个:

$(".foo:not(.foo .foo.child,.foo .foo.child *)")

.foo匹配所有class="foo". .foo .foo.child匹配class="foo child"another 中包含的任何内容class="foo",并.foo .foo.child *匹配其所有后代。


推荐阅读