Як в jQuery вибрати елемент з декількома класами?

Я хочу вибрати всі елементи, які мають два класи a і b.

<element class="a b">

Отже, тільки ті елементи, які мають обидва класи.

Коли я використовую $(".a, .b") він дає мені об'єднання, а мені потрібен перетин.

Рішення

Якщо ви хочете зіставити тільки елементи з обома класами (перетин, як логічне І), просто напишіть селектори разом без пробілів між ними:

$('.a.b')

Порядок не має значення, тому ви також можете поміняти класи місцями:

$('.b.a')

Таким чином, щоб зіставити елемент div, що має ідентифікатор a з класами b і c, ви б написали:

$('div#a.b.c')

(На практиці, скоріш за все, вам не потрібно отримувати таку специфіку, і зазвичай достатньо самого ідентифікатора або селектора класу: $('#a')).

Коментарі (11)

Зробити це можна за допомогою функції filter():

$(".a").filter(".b")
Коментарі (8)

Згадаймо ще один випадок зі стихією:

Наприклад, <div id="title1" class="A B C">

Просто наберіть: `$("div#title1.A.B.C")``.

Коментарі (0)