Я хочу выбрать все элементы, которые имеют два класса a
и b
.
<element class="a b">
Итак, только те элементы, которые имеют оба класса.
Когда я использую $(".a, .b")
это дает мне союз, но я хочу пересечение.
jquery
jquery-selectors
Младен
источник
источник
Ответы:
Если вы хотите сопоставить только элементы с обоими классами (пересечение, как логическое И), просто запишите селекторы вместе без пробелов между ними:
Порядок не имеет значения, поэтому вы также можете поменять местами классы:
Таким образом, чтобы сопоставить
div
элемент, имеющий идентификаторa
с классамиb
иc
, вы должны написать:(На практике вам, скорее всего, не нужно получать эту конкретную информацию, и обычно достаточно идентификатора или селектора классов:.
$('#a')
)источник
b
иc
добавляются динамически, и вы хотите выбрать элемент, только если у него есть эти классы..a .b
ищет элементы с классом,b
которые являются потомками элемента с классомa
. Так что- то вродеdiv a
будет возвращать толькоa
элементы, которые в видеdiv
элемента.Вы можете сделать это с помощью
filter()
функции:источник
.a
и вам нужно несколько раз фильтровать на основе разных произвольных классов, которые также принадлежат исходному.a
набору.Для случая
Вы должны были бы поставить пробел между
.a
и.b.c
источник
$('.a .c.b')
также будет работать?$('.a > element')
Проблема в том, что вы используете
Group Selector
, тогда как вы должны использоватьMultiples selector
! Чтобы быть более конкретным, вы используете в$('.a, .b')
то время как вы должны использовать$('.a.b')
.Для получения дополнительной информации см. Обзор различных способов комбинирования селекторов ниже!
Выбор группы: ","
Выберите все
<h1>
элементы И все<p>
элементы И все<a>
элементы:Селектор множества: "" (без символа)
Выберите все
<input>
элементыtype
text
, с классамиcode
иred
:Селектор потомков: "" (пробел)
Выберите все
<i>
элементы внутри<p>
элементов:Выбор ребенка: ">"
Выберите все
<ul>
элементы, которые являются непосредственными потомками<li>
элемента:Селектор соседнего брата: «+»
Выберите все
<a>
элементы, которые размещаются сразу после<h2>
элементов:Главный Выбор Родного брата: "~"
Выберите все
<span>
элементы, которые являются родственными<div>
элементами:источник
источник
Просто упомяните еще один случай с элементом:
Например
<div id="title1" class="A B C">
Просто введите:
$("div#title1.A.B.C")
источник
Решение Vanilla JavaScript: -
document.querySelectorAll('.a.b')
источник
Для лучшей производительности вы можете использовать
Это будет смотреть только через элементы div вместо того, чтобы переходить через все элементы html, которые есть на вашей странице.
источник
Выбор группы
Становится так:
Итак, в вашем случае вы попробовали селектор группы, тогда как его пересечение
вместо этого используйте это
источник
Вам не нужно
jQuery
для этогоВ
Vanilla
вы можете сделать:источник
Ваш код
$(".a, .b")
будет работать для нескольких элементов ниже (одновременно)если вы хотите выбрать элемент, имеющий a и b оба класса, как,
<element class="a b">
чем использовать JS без комыисточник
Вы можете использовать
getElementsByClassName()
метод для того, что вы хотите.Это также самое быстрое решение. Вы можете увидеть тест здесь .
источник
var elem = document.querySelector (". ab");
источник