第一层次元素的JQuery选择器?

时间:2010-06-17 14:48:55

标签: jquery selector hierarchy

我有这个HTML结构:

<div class="start">
  <div class="someclass">
    <div class="catchme">
      <div="nested">
        <div class="catchme"> <!-- STOP! no, no catchme's within other catchme's -->
        </div>
      </div>
    </div>
    <div class="someclass">
      <div class="catchme">
      </div>
    </div>
  </div>
  <div class="otherclass">
    <div class="catchme">
    </div>
  </div>
</div>

我正在寻找一个JQuery结构,它返回我的'start'容器中的所有catchme,除了包含在找到的catchme中的所有catchme。事实上,无论它们在DOM树中的深度如何,我都只想要所有“第一级”的捕获量。

这很接近,但不是很好:

var start = $('.start');
// do smething
$('.catchme:first, .catchme:first:parent + .catchme', start)

我想进一步打破所有找到的元素后面的树。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

这会吗?

$('.catchme:not(.catchme .catchme)');

答案 1 :(得分:0)

这样的事情会起作用吗?

$('.catchme :not(.catchme)', start)

答案 2 :(得分:0)

您可以使用.filter().parents()

$('.catchme').filter(function(){
    return $(this).parents('.catchme').length == 0;
};

这将仅选择那些没有catchme元素作为祖先的catchme个元素。