JS метод Element.querySelector()


Загальний опис

Element.querySelector() - це метод, який дозволяє знайти перший елемент у документі, що відповідає зазначеному селектору CSS. Він використовується для вибору та маніпуляції елементами на веб-сторінці та є корисним інструментом для роботи з DOM (Document Object Model).

Основна синтаксична конструкція методу querySelector() виглядає наступним чином:

element.querySelector(селектор);

Тут element - це вихідний елемент, з якого починається пошук, а селектор - це рядок, що містить селектор CSS, за яким здійснюється пошук елементів. Якщо селектор знайдено, метод повертає перший елемент, що відповідає йому, інакше - null.

Метод querySelector() підтримує широкий спектр селекторів CSS, включаючи селектори тегів, класів, ідентифікаторів, атрибутів, а також комбінації цих селекторів. Ось кілька прикладів використання:

// Вибір елемента за тегом
const heading = document.querySelector('h1');

// Вибір елемента за класом
const navLinks = document.querySelector('.nav-links');

// Вибір елемента за ідентифікатором
const mainContent = document.querySelector('#main-content');

// Вибір елемента за атрибутом
const externalLinks = document.querySelector('a[target="_blank"]');

// Комбінований селектор
const activeNavLink = document.querySelector('nav ul li.active a');

Одна з переваг використання querySelector() полягає в тому, що він дозволяє обирати елементи на основі їхнього контексту в документі. Наприклад, можна вибрати перший абзац всередині певного елемента:

const articleBody = document.querySelector('article');
const firstParagraph = articleBody.querySelector('p');

Метод querySelector() також дозволяє використовувати складні селектори CSS, такі як селектори псевдо-класів та псевдо-елементів. Наприклад, можна вибрати активний елемент навігації або першу літеру абзацу:

const activeNavLink = document.querySelector('nav a:active');
const firstLetter = document.querySelector('p::first-letter');

Слід зазначити, що querySelector() повертає лише перший елемент, що відповідає селектору. Якщо потрібно вибрати всі відповідні елементи, варто використовувати метод querySelectorAll(), який повертає статичну колекцію (NodeList) відповідних елементів.

Загалом, метод querySelector() є потужним та гнучким інструментом для вибору елементів на веб-сторінці, що значно спрощує маніпуляцію DOM та взаємодію з користувачем у JavaScript. Його використання дозволяє писати більш ефективний та зрозумілий код, а також полегшує роботу з різноманітними елементами веб-сторінки.

автор: Bond

Порада

Будьте обережні при використанні складних селекторів CSS у querySelector(). Хоча вони можуть бути зручними, їх використання може негативно вплинути на продуктивність, особливо якщо вони застосовуються до великих фрагментів DOM. У таких випадках розгляньте можливість використання більш простих селекторів або альтернативних методів, таких як getElementById() або getElementsByClassName().

автор: Bond
Порада

Комбінуйте querySelector() з іншими методами для маніпуляції обраними елементами. Наприклад, ви можете змінити стиль елемента або додати обробник події після його вибору: document.querySelector('button').style.color = 'red' або document.querySelector('#myDiv').addEventListener('click', handleClick).

автор: Bond
Порада

Для вибору кількох елементів використовуйте querySelectorAll() замість querySelector(). Метод querySelectorAll() повертає статичну колекцію (NodeList) всіх елементів, що відповідають заданому селектору. Ви можете перебрати цю колекцію за допомогою циклу для виконання операцій над кожним елементом.

const links = document.querySelectorAll('a');
links.forEach(link => {
  link.style.textDecoration = 'underline';
});
автор: Bond

Синтаксис

querySelector(selectors)

Параметри

selectors

Рядок, що містить один або більше селекторів CSS для вибору елементів. Це має бути коректний синтаксис CSS, інакше буде згенеровано виняток SyntaxError. Повертається перший знайдений елемент, що відповідає зазначеному селектору.

автор: Bond

Повернення

element

Повертає перший елемент, який є нащадком базового елемента та відповідає зазначеному селектору CSS. Під час пошуку враховується вся ієрархія елементів, включно з тими, що знаходяться поза межами базового елемента та його нащадків.

Якщо жодний елемент не відповідає селектору, метод повертає null.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 3.5 3.1 10 12 9
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 2

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі метод querySelector() використовується для знаходження першого елемента на веб-сторінці, який відповідає заданому CSS-селектору. Це може бути корисним для маніпулювання або отримання інформації про конкретний елемент без необхідності перебирати весь DOM.

HTML

<div class="highlight">перший елемент highlight</div>
<div class="highlight">другий елемент highlight</div>

JS

// Знаходимо перший елемент з класом "highlight"
const highlightedElement = document.querySelector('.highlight');

// Змінюємо колір тексту елемента
highlightedElement.style.color = 'red';
автор: Bond

У цьому прикладі метод querySelector() використовується для знаходження батьківського елемента, а потім ітерується по його дочірніх елементах для виконання певних дій. Це дозволяє маніпулювати групою елементів, які відповідають певному критерію, без необхідності явно вибирати їх за допомогою додаткових селекторів.

HTML

<div id="parent">Демонстраційний елемент</div>

JS

// Знаходимо елемент з ідентифікатором "parent"
const parentElement = document.querySelector('#parent');

// Ітеруємо по дочірніх елементах
const childElements = parentElement.children;
for (let i = 0; i < childElements.length; i++) {
  const child = childElements[i];

  // Перевіряємо, чи елемент є посиланням
  if (child.tagName.toLowerCase() === 'a') {
    // Додаємо клас до посилань
    child.classList.add('external-link');
  }
}
автор: Bond

У цьому прикладі використовується метод querySelector() для знаходження елемента з ідентифікатором change-color-btn, а також метод querySelectorAll() для отримання колекцій елементів з класами color-checkbox та .content h3, .content p, .content span.

Приклад демонструє, як можна використовувати querySelector() та querySelectorAll() для маніпулювання вибраними елементами на веб-сторінці. Користувач може вибрати, які типи елементів (p, h3, span) повинні змінити колір тексту на червоний, встановлюючи або знімаючи відмітки в чекбоксах. Після натискання кнопки "Змінити колір" JavaScript-код ітерується по всіх відповідних елементах та змінює їх колір тексту відповідно до вибору користувача.

Цей приклад ілюструє, як querySelector() може бути використаний для отримання одного конкретного елемента (кнопка), а querySelectorAll() - для отримання колекцій елементів (чекбокси та елементи контенту). Це дозволяє легко маніпулювати різними групами елементів на веб-сторінці, що є важливою можливістю для створення інтерактивних веб-додатків.

Також у прикладі демонструється використання методів масивів, таких як Array.from(), filter() та map(), для обробки колекцій елементів, отриманих за допомогою querySelectorAll(). Це показує, як ці методи можуть бути використані для ефективної роботи з DOM-елементами у JavaScript.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід