Использование jQuery для выбора нескольких div, содержащих X и Y

Я хочу найти продукты, которые содержат набор разных классов, а затем удалить их. Использование желательно только jQuery.

До сих пор я пробовал несколько вариантов:

$('.div1:contains(\"Cat\"), .div2:contains(\"dog\")').remove();
$('.div1:contains(\"Cat\").div2:contains(\"dog\")').remove();
$('.div1:contains(\"Cat\"):contains(\"dog\")').remove();

Единственный вариант, который работает, это:

$('.div1:contains(\"cat\"), .div1:contains(\"dog\")').remove();

... что не совсем отвечает моей проблеме, поскольку удаляет вещи, которые следует сохранить.

Можно ли выбрать два элемента div, содержащих определенные слова, в одной строке jQuery?

Пример:

Таким образом, все рассматриваемые div имеют один и тот же класс. Все они содержат элементы div одного класса. Мне нужно определить те элементы, которые содержат классы «кошка» и «собака», чтобы иметь возможность удалить только их. Исключение жирафа невозможно.

DIV SAMECLASS - кошка div1 - собака div2

DIV SAMECLASS - кошка div1 - собака div2

DIV SAMECLASS - div1 кошка - div2 жираф


person MS.    schedule 14.08.2019    source источник
comment
Это помогло бы нам ответить на вопрос, если бы мы могли видеть HTML, с которого вы начинаете, а также результат, которого вы хотите достичь.   -  person Rory McCrossan    schedule 14.08.2019


Ответы (1)


Вы можете назначить класс продукта div, который хотите удалить, а затем

$('.dog').remove();

вы можете использовать data-product как класс, а затем использовать .attr(), чтобы найти и удалить его. Если вы хотите, вы можете использовать empty(), который не удалит элемент, но удалит все внутри него.

ИЗМЕНИТЬ

После вашего примера редактирования, и если я его понимаю, вы можете просто использовать

if (!$('.dog').hasClass('girafe')) {//whatever you want to do with it......};

Он проверяет, имеет ли элемент с классом «собака» класс «жираф», и если нет, он выполнит ваш код.

person Alexis Garcia    schedule 14.08.2019
comment
К сожалению, все эти элементы на странице имеют одинаковые имена, поэтому присвоение класса невозможно, так как у него та же проблема, что и в списке. Попытаюсь добавить пример в описание. - person MS.; 14.08.2019
comment
Добавьте немного html, чтобы мы могли его увидеть. Где вы берете свои данные? пхп? или его статика? Если это php, вы можете добавить идентификатор данных или как вы хотите его назвать, а затем получить его с помощью attr() и удалить или очистить его. Но добавьте немного html, чтобы мы могли помочь - person Alexis Garcia; 14.08.2019