Как я могу выбрать элемент с несколькими classами в jQuery?
Я хочу выбрать все элементы, которые имеют два classа a
и b
.
Итак, только те элементы, которые имеют оба classа.
Когда я использую $(".a, .b")
он дает мне союз, но я хочу пересечение.
- Изменение CSS-элемента дочернего элемента при зависании родительского элемента
- Найти все элементы на основе ids с помощью regex в селекторе jQuery
- Получить список отмеченных флажков в div с помощью jQuery
- Фильтр jquery имеет +
- Как выбрать элементы, которые не имеют определенного дочернего элемента с JQuery
- Что такое fastest children () или find () в jQuery?
- Как я могу получить идентификатор элемента с помощью jQuery?
- Доступ к css ": после" селектор с jQuery
- Как я могу получить соответствующий заголовок таблицы (th) из ячейки таблицы (td)?
- Выбор элементов с определенным цветом фона
- Выбрать элемент по точному соответствию его содержимому
- jQuery mobile - для каждого события прямого трансляционного события должно существовать эквивалентное событие click?
- jQuery scrollTop не работает в Chrome, но работает в Firefox
Если вы хотите пересечение, просто напишите селектора вместе без пробелов между ними.
$('.a.b')
Итак, для элемента с идентификатором a
с classами b
и c
вы должны написать:
$('#abc')
Вы можете сделать это, используя функцию filter()
:
$(".a").filter(".b")
Для случая
Вам нужно будет разместить промежуток между .bc
и .bc
$('.a .b.c')
Проблема, с которой вы сталкиваетесь, заключается в том, что вы используете Group Selector
, тогда как вы должны использовать Multiples selector
! Чтобы быть более конкретным, вы используете $('.a, .b')
тогда как вы должны использовать $('.a.b')
.
Для получения дополнительной информации см. Обзор различных способов объединения селекторов ниже!
Селектор групп: “,”
Выберите все элементы
И все элементы
$('h1, p, a')
Селектор мультипликации: “” (без символа)
Выберите все элементы
text
type
, с code
classов и red
:
$('input[type="text"].code.red')
Селектор потомков: “” (пробел)
Выделите все элементы внутри элементов
:
$('p i')
Селектор детей: “>”
Выберите все
элементы, которые являются непосредственными
элементами элемента
:
$('li > ul')
Смежный селектор: «+»
Выберите все элементы , которые помещаются сразу после элементов
:
$('h2 + a')
Общий селектор сиблинга: “~”
Выберите все элементы которые являются братьями и сестрами элементов
:
$('div ~ span')
$('.a .b , .a .c').css('border', '2px solid yellow'); //selects b and c
a b c d
Просто укажите другой случай с элементом:
Например
Просто введите: $("div#title1.ABC")
Ванильное JavaScript-решение: –
document.querySelectorAll('.a.b')
Для лучшей производительности вы можете использовать
$('div.a.b')
Это будет выглядеть только через элементы div, а не через все элементы html, которые у вас есть на вашей странице.
Селектор групп
body {font-size: 12px; } body {font-family: arial, helvetica, sans-serif;} th {font-size: 12px; font-family: arial, helvetica, sans-serif;} td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
Становится следующим:
body, th, td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
Поэтому в вашем случае вы попробовали селектор групп, тогда как его пересечение
$(".a, .b")
вместо этого используйте это
$(".ab")
Вам не нужен jQuery
для этого
В Vanilla
вы можете делать:
document.querySelectorAll('.a.b')
Вы можете использовать метод getElementsByClassName()
для чего вы хотите.
var elems = document.getElementsByClassName("abc"); elems[0].style.color = "green"; console.log(elems[0]);
- a
- a, b
- a, b, c