Document.querySelector()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨Ð¸ÑÐ»Ñ 2015 г.â©.
Document меÑод querySelector() возвÑаÑÐ°ÐµÑ Ð¿ÐµÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ (Element) докÑменÑа, коÑоÑÑй ÑооÑвеÑÑÑвÑÐµÑ ÑÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¼Ñ ÑелекÑоÑÑ Ð¸Ð»Ð¸ гÑÑппе ÑелекÑоÑов. ÐÑли Ñовпадений не найдено, возвÑаÑÐ°ÐµÑ Ð·Ð½Ð°Ñение null.
ÐÑимеÑание: СопоÑÑавление вÑполнÑеÑÑÑ Ñ Ð¸ÑполÑзованием Ð¾Ð±Ñ Ð¾Ð´Ð° по пÑедваÑиÑелÑÐ½Ð¾Ð¼Ñ Ð¿Ð¾ÑÑÐ´ÐºÑ Ð² глÑÐ±Ð¸Ð½Ñ Ñзлов докÑменÑа, наÑÐ¸Ð½Ð°Ñ Ñ Ð¿ÐµÑвого ÑлеменÑа в ÑазмеÑке докÑменÑа и повÑоÑÑÑ Ð¿Ð¾ÑледоваÑелÑнÑе ÑÐ·Ð»Ñ Ð¿Ð¾ поÑÑÐ´ÐºÑ ÐºÐ¾Ð»Ð¸ÑеÑÑва доÑеÑÐ½Ð¸Ñ Ñзлов.
СинÑакÑиÑ
element = document.querySelector(selectors);
ÐаÑамеÑÑÑ
- ÑелекÑоÑÑ
-
DOMString, ÑодеÑжаÑий один или более ÑелекÑоÑов Ð´Ð»Ñ ÑопоÑÑавлениÑ. ÐÑа ÑÑÑока должна бÑÑÑ Ð´Ð¾Ð¿ÑÑÑимой ÑÑÑокой ÑелекÑоÑа CSS; еÑли же неÑ, генеÑиÑÑеÑÑÑ Ð¸ÑклÑÑениеSYNTAX_ERR. СмоÑÑиÑе РаÑположение ÑлеменÑов DOM Ñ Ð¸ÑполÑзованием ÑелекÑоÑов Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑзнаÑÑ Ð±Ð¾Ð»ÑÑе о ÑелекÑоÑÐ°Ñ Ð¸ о Ñом, как ими ÑпÑавлÑÑÑ.
ÐÑимеÑание: СимволÑ, коÑоÑÑе не ÑвлÑÑÑÑÑ ÑаÑÑÑÑ ÑÑандаÑÑного ÑинÑакÑиÑа CSS Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑкÑаниÑÐ¾Ð²Ð°Ð½Ñ Ñимволом обÑаÑной коÑой ÑеÑÑÑ. ÐоÑколÑÐºÑ JavaScript Ñакже иÑполÑзÑÐµÑ ÑкÑаниÑование Ñимволом обÑаÑной коÑой ÑеÑÑÑ, бÑдÑÑе оÑобенно внимаÑелÑÐ½Ñ Ð¿Ñи напиÑании ÑÑÑоковÑÑ Ð»Ð¸ÑеÑалов Ñ Ð¸ÑполÑзованием ÑÑÐ¸Ñ Ñимволов. См. Escaping special characters Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной инÑоÑмаÑии.
ÐозвÑаÑаемое знаÑение
СÑÑлка на обÑÐµÐºÑ Ñипа Element, ÑвлÑÑÑийÑÑ Ð¿ÐµÑвÑм ÑлеменÑов в докÑменÑе, коÑоÑÑй ÑооÑвеÑÑÑвÑÐµÑ ÑÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¼Ñ Ð½Ð°Ð±Ð¾ÑÑ CSS ÑелекÑоÑов, либо null, еÑли Ñовпадений неÑ.
ÐÑли вам нÑжен ÑпиÑок вÑеÑ
ÑлеменÑов, ÑооÑвеÑÑÑвÑÑÑиÑ
ÑказаннÑм ÑелекÑоÑам, иÑполÑзÑйÑе ÑÑнкÑÐ¸Ñ querySelectorAll().
ÐÑклÑÑениÑ
SYNTAX_ERR-
ÐекоÑÑекÑнÑй ÑинÑакÑÐ¸Ñ ÑказаннÑÑ ÑелекÑоÑов selectors.
ÐÑимеÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ иÑполÑзованиÑ
ÐÑли ÑказаннÑй ÑелекÑÐ¾Ñ ÑооÑвеÑÑÑвÑÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑÑ, коÑоÑÑй непÑавилÑно иÑполÑзÑеÑÑÑ Ð±Ð¾Ð»ÐµÐµ одного Ñаза в докÑменÑе, возвÑаÑаеÑÑÑ Ð¿ÐµÑвÑй ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ñ ÑÑим иденÑиÑикаÑоÑом.
ÐÑевдо-ÑлеменÑÑ 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]");
СпеÑиÑикаÑии
| Specification |
|---|
| DOM > # ref-for-dom-parentnode-queryselectorâ > |