jQuery 选择器,跳过给定类的所有后代(不仅仅是直系子项)



我的头快要爆炸了!

鉴于:

<div class="outer1">
  <div class="outer2">
    <div class="yes"></div>
    <div class="yes">
       <div class="me-too"></div>
    </div>
    <div class="no">
       <div class="me-not"></div>
    </div>
    <div class="no">
       <div class="me-not">
         <div class="me-not2"></div>
       </div>
    </div>
    <div class="no"></div>
  </div>
</div>
什么是

应用于outer1的选择器,它将为我提供所有yes(和me-too的(,但no下没有任何内容?

我已经尝试了显而易见的方法:

$( 'div.outer1' ).not( 'div.no' ).stuff()

以及:

$( 'div.outer1 :not(div.no)' ).stuff()

但是,除非我在其他地方有错误,否则stuff()仍然会得到div.me-notdiv.me-not2

谢谢:)

使用查找 这里,很抱歉,如果这不是你要找的。这仅限于div.outer1 儿童。它找到所有内容和任何不是 outer2、.no 或 .no 下的任何内容。

$( 'div.outer1' ).find(':not(div.outer2,div.no,div.no *)');

相关内容

最新更新