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
1 3.5 3.1 10 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 2
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

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

У цьому прикладі метод 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

Коментарі

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

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

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

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

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

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

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

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

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

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

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