Скажем, у меня есть это:
<div class="class1 class2"></div>
Как выбрать этот div
элемент?
document.getElementsByClassName('class1')[0].getElementsByClassName('class2')[0]
Это не работает.
Я знаю, что в jQuery это так $('.class1.class2')
, но я хотел бы выбрать его с помощью ванильного JavaScript.
javascript
class
element
Натан Прометей
источник
источник
И (оба класса)
ИЛИ (хотя бы одно занятие)
XOR (один класс, но не другой)
NAND (не оба класса)
НИ (не любой из двух классов)
источник
querySelectorAll со стандартными селекторами классов также работает для этого.
источник
document.querySelectorAll('.class1, .class2');
.class1
ИЛИ.class2
, в то время как приведенный выше будет захватывать только элементы с обоими классами и фактически работает. См. Вывод этого теста на консоль: jsfiddle.net/0ph1p9p2Как сказал @filoxo, вы можете использовать
document.querySelectorAll
.Если вы знаете, что существует только один элемент с классом, который вы ищете, или вас интересует только первый, вы можете использовать:
Кстати, в то время как
.class1.class2
указывает элемент с обоими классами.class1 .class2
(обратите внимание на пробел), указывает иерархию - и элемент с классом,class2
который находится внутри элемента en с классомclass1
:А если вы хотите принудительно получить прямого потомка, используйте
>
sign (.class1 > .class2
):Полная информация о селекторах:
https://www.w3schools.com/jquery/jquery_ref_selectors.asp
источник
HTML
код javascritp
Метод querySelectorAll () возвращает все элементы в документе, которые соответствуют указанному селектору (-ам) CSS, как статический объект NodeList.
Объект NodeList представляет собой набор узлов. Доступ к узлам можно получить по номерам индексов. Индекс начинается с 0.
также узнайте больше о https://www.w3schools.com/jsref/met_document_queryselectorall.asp
== Спасибо ==
источник
Хорошо, этот код делает именно то, что вам нужно:
HTML:
JS:
Надеюсь, поможет! ;)
источник
на самом деле ответ @bazzlebrush и комментарий @filoxo мне очень помогли.
Мне нужно было найти элементы, в которых класс мог бы быть "zA yO" OR "zA zE"
Используя jquery, я сначала выбираю родительский элемент желаемых элементов:
(div с классом, начинающимся с 'abc' и стилем! = 'display: none')
затем желаемые дочерние элементы этого элемента:
работает отлично! обратите внимание, что вам не нужно делать document.querySelector, вы можете, как указано выше, передать предварительно выбранный объект.
источник