Поиск элементов DOM с помощью селекторов
API селекторов предоставляет методы, которые позволяют быстро и легко извлекать Element узлы из DOM, сопоставляя их с набором селекторов. Это значительно быстрее, чем предыдущие методы, которые, например, требовали использования цикла в JavaScript-коде для поиска необходимых элементов.
Интерфейс NodeSelector
Этот стандарт добавляет два новых метода к объектам, реализующим интерфейсы Document, DocumentFragment или Element:
querySelector()-
Возвращает первый соответствующий
Elementузел в поддереве узла. Если соответствующий узел не найден, возвращаетсяnull. querySelectorAll()-
Возвращает
NodeList, содержащий все соответствующиеElementузлы в поддереве узла, или пустойNodeList, если совпадений не найдено.
Примечание: NodeList, возвращаемый методом querySelectorAll(), не является динамическим, что означает, что изменения в DOM не отражаются в коллекции. Это отличается от других методов запроса DOM, которые возвращают динамические списки узлов.
Примеры и подробности вы можете найти в документации методов Element.querySelector() и Element.querySelectorAll().
Селекторы
Методы селекторов принимают селекторы для определения того, какой элемент или элементы должны быть возвращены. Это включает списки селекторов, позволяющие группировать несколько селекторов в одном запросе.
Для защиты конфиденциальности пользователя некоторые псевдоклассы не поддерживаются или ведут себя иначе. Например, :visited не вернёт совпадений, а :link обрабатывается как :any-link.
Можно выбирать только элементы, поэтому псевдоклассы не поддерживаются.
Примеры
Чтобы выбрать все элементы абзаца (p) в документе, у которых классы включают warning или note, можно сделать следующее:
const special = document.querySelectorAll("p.warning, p.note");
Также можно осуществлять поиск по идентификатору. Например:
const el = document.querySelector("#main, #basic, #exclamation");
После выполнения данного кода, el содержит первый элемент в документе, у которого идентификатор является одним из main, basic, или exclamation.
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Locating_DOM_elements_using_selectors