Вибір декількох класів за допомогою jQuery


222

Я добре роздивився і не можу зрозуміти, як вибрати всі елементи, що відповідають певним класам, в одному операторі вибору jQuery, такому як цей:

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

Будь-які ідеї, як цього досягти? Єдиний інший варіант - це зробити

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

Але я роблю це досить мало класів, тому для цього потрібно багато коду.

Відповіді:


402

Це має працювати:

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

Ви повинні додати декілька селекторів у першому аргументі до $ (), інакше ви даєте jQuery контекст, в якому потрібно шукати, а це не те, що ви хочете.

Це те саме, що ви робили в CSS.


3
Що робити, якщо я хочу відповідати йому лише тоді, коли кожен елемент має всі задані класи?
ІсмаїлС

12
Добре, я отримав цей stackoverflow.com/q/1041344/148271 . в основному мені доведеться приєднатися до всього перемикача для перетину. Like$(".myClass.myOtherClass")
IsmailS

Детальніше про групування CSS: W3C "Групування" .
скранд

@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.