jQuery只有在它们没有嵌套在相似元素中时才选择元素

时间:2013-07-17 03:39:17

标签: javascript jquery jquery-selectors

假设如下:

<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!”。

3 个答案:

答案 0 :(得分:7)

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

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

这排除了嵌套在另一个.a中的任何.a,因此您只能获得最外层的{{1}},无论最外面的那些是否嵌套在其他元素中。

答案 1 :(得分:5)

尝试使用jQuery :not选择器

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

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

答案 2 :(得分:1)

尝试

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

selector profiling