Выбор нескольких классов с помощью jQuery


222

Я хорошо выглядел и не могу понять, как выбрать все элементы, соответствующие определенным классам, в одном операторе селектора jQuery, например:

$('.myClass', '.myOtherClass').removeClass('theclass');

Есть идеи как этого добиться? Единственный другой вариант - сделать

$('.myClass').removeClass('theclass');
$('.myOtherClass').removeClass('theclass');

Но я делаю это с довольно многими классами, так что это требует много кода.

Ответы:


402

Это должно работать:

$('.myClass, .myOtherClass').removeClass('theclass');

Вы должны добавить несколько селекторов в первом аргументе в $ (), в противном случае вы предоставляете jQuery контекст для поиска, а это не то, что вам нужно.

Это так же, как вы сделали бы в CSS.


3
Что если я хочу сопоставить его только тогда, когда у каждого элемента есть все указанные классы?
IsmailS

12
Хорошо, я получил этот один stackoverflow.com/q/1041344/148271 . в основном мне придется объединить все селекторы для пересечения. Нравится$(".myClass.myOtherClass")
IsmailS

Подробнее о CSS группировке: W3C "Группировка" .
skrounge

@wal: эта запятая необходима и в CSS при указании на оба класса. Без запятой это указывало бы на .myOtherClassто, что где-то внутри .myClass.
geekuality

этот ответ не отвечает на вопрос, таким образом, вы делаете ИЛИ !!!! не И !!
Махмуд Хатиб


25

я использую $('.myClass.myOtherClass').removeClass('theclass');


34
Это если элемент HTML имеет несколько классов, и вы хотите удалить класс для элемента только со всеми этими классами. Другие примеры удаляют класс из любого элемента с любым из классов, разделенных запятыми. Ваш пример будет работать, только если у моего HTML-элемента есть и то и другое , например,<div class="myClass myOtherClass theclass">
Kezzer

0
// Due to this Code ): Syntax problem.    
$('.myClass', '.myOtherClass').removeClass('theclass'); 

Согласно документации jQuery: https://api.jquery.com/multiple-selector/

Когда можно выбрать несколько классов следующим образом:

jQuery(“selector1, selector2, selectorN”) // double Commas. // IS valid.
jQuery('selector1, selector2, selectorN') // single Commas. // Is valid.

заключив все селекторы в одну '...' 'или двойные запятые, "..."

Итак, в вашем случае правильный способ вызова нескольких классов:

$('.myClass', '.myOtherClass').removeClass('theclass'); // your Code // Invalid.
$('.myClass , .myOtherClass').removeClass('theclass');  // Correct Code // Is valid.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.