Подтвердить что ты не робот

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

Я хочу выбрать все div на странице, чьи дети не содержат элемент с определенным классом.

Я могу выбрать элементы, чьи потомки do содержат класс с:

$('div').has('.myClass');

Поэтому я просто хочу, чтобы это было наоборот.

4b9b3361

Ответ 1

Я бы использовал ".filter()":

var theDivs = $('div').filter(function() {
  return $(this).find('.myclass').length === 0;
});

Ответ 2

Простой $("div:not(:has(.myClass))") выполнит эту работу.

Как он работает внутри jQuery?

1) $("div") - получает все DIV из документа.

2) :not(:has(.myClass)) - Это два утверждения, вложенные в другое. Теперь jQuery выполняет :has(.myClass) в приведенных DIV на вышеуказанном шаге и получает все DIV с именем класса 'myClass'

3) :not() - Этот псевдоселекторный метод будет применяться ко всем DIV с шага 1 по сравнению с DIV, полученными в результате второго заявления, чтобы найти DIV без ".myClass". Это возможно путем циклического перехода через все DIV с шага 1 и сравнения DIV со второго шага.

Ответ 3

$('div:not(:has(*>.myClass))');

Ответ 4

$('div').has(':not(.myClass)');