--- title: Document.querySelector() slug: Web/API/Document/querySelector tags: - CSS - DOM - Selector - querySelector - выборка - поиск элемента - поиск элементов - селектор translation_of: Web/API/Document/querySelector ---
{{domxref("Document")}} метод querySelector()
возвращает первый элемент ({{domxref("Element")}}) документа, который соответствует указанному селектору или группе селекторов. Если совпадений не найдено, возвращает значение null
.
Примечание: Сопоставление выполняется с использованием обхода по предварительному порядку в глубину узлов документа, начиная с первого элемента в разметке документа и повторяя последовательные узлы по порядку количества дочерних узлов.
element = document.querySelector(selectors);
SYNTAX_ERR
. Смотрите Расположение элементов DOM с использованием селекторов для того, чтобы узнать больше о селекторах и о том, как ими управлять.Примечание: Символы, которые не являются частью стандартного синтаксиса CSS должны быть экранированы символом обратной косой черты. Поскольку JavaScript также использует экранирование символом обратной косой черты, будьте особенно внимательны при написании строковых литералов с использованием этих символов. См. {{anch("Escaping special characters")}} для получения дополнительной информации.
Ссылка на объект типа {{domxref("Element")}}, являющийся первым элементов в документе, который соответствует указанному набору CSS селекторов, либо null
, если совпадений нет.
Если вам нужен список всех элементов, соответствующих указанным селекторам, используйте функцию {{domxref("Document.querySelectorAll", "querySelectorAll()")}}.
SYNTAX_ERR
Если указанный селектор соответствует идентификатору, который неправильно используется более одного раза в документе, возвращается первый элемент с этим идентификатором.
Псевдо-элементы CSS никогда не вернут никаких элементов, как указано в API селекторов.
Чтобы сопоставить ID или селекторы, которые не соответствуют стандартному синтаксису CSS (например, использующих ненадлежащим образом двоеточие или пробел), необходимо экранировать символ обратной косой чертой ("\
"). Поскольку обратная косая черта также является экранирующим символом в JavaScript, то при вводе литеральной строки необходимо экранировать её дважды (первый раз для строки JavaScript и второй для querySelector()
):
<div id="foo\bar"></div> <div id="foo:bar"></div> <script> console.log('#foo\bar'); // "#fooar" (\b is the backspace control character) document.querySelector('#foo\bar'); // Does not match anything console.log('#foo\\bar'); // "#foo\bar" console.log('#foo\\\\bar'); // "#foo\\bar" document.querySelector('#foo\\bar'); // Match the first div document.querySelector('#foo:bar'); // Does not match anything document.querySelector('#foo\\:bar'); // Match the second div </script>
В этом примере, нам вернётся первый элемент в документе с классом "myclass
":
var el = document.querySelector(".myclass");
Селекторы, передаваемые в querySelector, могут быть использованы и для точного поиска, как показано в примере ниже. В данном примере возвращается элемент <input name="login"/>, находящийся в <div class="user-panel main">:
var el = document.querySelector("div.user-panel.main input[name=login]");
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName("Selectors API Level 2", "#interface-definitions", "document.querySelector()")}} | {{Spec2("Selectors API Level 2")}} | |
{{SpecName("Selectors API Level 1", "#interface-definitions", "document.querySelector()")}} | {{Spec2("Selectors API Level 1")}} | Изначальное определение |
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
{{Compat("api.Document.querySelector")}}