2

假设如下:

<div class="a"> <!-- select -->
  <div class="b">
    <div class="a"> <!-- skip -->
    </div>
  </div>
</div>

<div class="b">
   <div class="a"> <!-- select -->
     <div class="b">
        <div class="a"> <!-- skip -->

        </div>
     </div>
   </div>
</div>

<div class="a"> <!-- select -->

</div>

如何只选择最外面的 $('.a') 元素?

编辑:一个有用的JSFiddle,在这个例子中,应该只选择“a”,而不是“a!”。

4

3 回答 3

7

这是过滤方法派上用场的地方:

$('.a').not('.a .a');

这不包括任何.a嵌套在另一个.a元素中的内容,因此您只会获得最外面的那些,而不管最外面的那些本身是否嵌套在其他元素中。

于 2013-07-17T03:41:30.063 回答
5

尝试使用 jQuery:not选择器

$('.a:not(.a .a)')

http://jsfiddle.net/7E7Mk/1/

于 2013-07-17T03:41:29.160 回答
1

尝试

var a = $('.a'), not = a.find('.a');
a.not(not);

选择器分析

于 2013-07-17T04:17:21.650 回答