Селектор JQuery для первого элемента иерархии? - PullRequest
0 голосов
/ 17 июня 2010

У меня есть такая структура 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, которая возвращает все catchme в моем контейнере 'start', кроме всех catchme, которые содержатся в найденной catchme. На самом деле, я хочу, чтобы все catchme «первого уровня» не зависимо от их глубины в дереве DOM.

Это что-то рядом, но не очень хорошо:

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

Я как бы хочу пробиться дальше по дереву за всеми найденными элементами. Есть идеи?

Ответы [ 3 ]

3 голосов
/ 17 июня 2010

Будет ли это делать?

$('.catchme:not(.catchme .catchme)');
0 голосов
/ 17 июня 2010

Вы можете использовать .filter() и .parents():

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

При этом будут выбраны только те элементы catchme, которые не имеютcatchme элемент как предок.

0 голосов
/ 17 июня 2010

Хотелось бы что-нибудь подобное?

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