Выберите все элементы, которые не являются потомками элементов с определенным классом - PullRequest
2 голосов
/ 21 ноября 2011

Я пытаюсь найти селектор, который выберет все textarea элементы, кроме тех, которые являются потомками класса .noSpell.

Поэтому я хочу, чтобы это совпадало:

<div>
   <textarea />
</div>

но не это

<div class="noSpell">
   <div>
      <textarea />
   </div>
</div>

Я пробовал это:

$(":not(.noSpell) textarea")

но это не сработало, предположительно потому, что хотя оно не будет соответствовать внешнему элементуон может соответствовать любому из внутренних.

Итак, как мне написать селектор, который исключает части дерева DOM на основе имени класса?

Ответы [ 3 ]

4 голосов
/ 21 ноября 2011

Как насчет этого:

$("textarea").not(".noSpell textarea")

Все текстовые поля, затем удалите те, у которых есть родительский элемент .noSpell.

0 голосов
/ 21 ноября 2011

@ cdmckay Ваш метод тоже правильный.

Попробуйте создать текстовую область как:

<textarea></textarea> 

и посмотрите, работает ли ваш код.

Возможно, вы захотите сделать это, чтобы проверить, работает ли ваш код

if($(":not(.noSpell) textarea").length > 0) {
    alert("there");
}
else {
    alert("not there");
}

Ура!

0 голосов
/ 21 ноября 2011

У меня работает следующее:

$("textarea").not(".noSpell");

Проверено в firefox / firebug.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...