JS метод Element.getElementsByTagName()
Загальний опис
Метод Element.getElementsByTagName()
повертає псевдо-масив елементів, що знаходяться всередині елементу, на якому викликається метод, і відповідають заданому імені тегу. Цей метод дозволяє вибрати всі елементи певного типу в межах вказаного вузла, що робить його корисним для маніпулювання та доступу до конкретних елементів веб-сторінки.
Метод getElementsByTagName()
можна викликати на будь-якому елементі документа, включно з об'єктом document
, який представляє весь HTML-документ. Синтаксис виклику методу виглядає так: elementNode.getElementsByTagName(tagName)
, де elementNode
- елемент, в межах якого здійснюється пошук, а tagName
- рядок, що містить ім'я тегу для пошуку (наприклад, "p"
для пошуку всіх елементів <p>
).
Розглянемо простий приклад використання getElementsByTagName()
на об'єкті document
:
const paragraphs = document.getElementsByTagName("p");
console.log(paragraphs.length); // Виведе кількість елементів <p> на сторінці
В цьому випадку paragraphs
буде псевдо-масивом, що містить всі елементи <p>
на сторінці. Ви можете перебирати цей псевдо-масив за допомогою циклу або використовувати методи масиву, такі як forEach()
.
Метод getElementsByTagName()
також можна застосовувати до окремих елементів, щоб знайти вкладені елементи певного типу. Наприклад:
<div id="content">
<p>Перший параграф</p>
<section>
<p>Другий параграф</p>
</section>
<p>Третій параграф</p>
</div>
const contentDiv = document.getElementById("content");
const paragraphsInContent = contentDiv.getElementsByTagName("p");
console.log(paragraphsInContent.length); // Виведе 3
У цьому прикладі paragraphsInContent
буде псевдо-масивом, що містить усі три елементи <p>
всередині елементу <div>
з ідентифікатором "content"
.
Варто зазначити, що метод getElementsByTagName()
повертає "живу" колекцію, що автоматично оновлюється при змінах в структурі документа. Це означає, що якщо ви додасте або видалите елемент відповідного типу після виклику getElementsByTagName()
, колекція автоматично відобразить ці зміни.
Для більш гнучкого вибору елементів часто використовують метод querySelectorAll()
, який дозволяє вибирати елементи за допомогою складніших селекторів CSS. Однак, getElementsByTagName()
залишається корисним інструментом для простого та ефективного вибору елементів за їх тегом.
Порада: | Пам'ятайте, що
|
Порада: | Для більш складних запитів вибору елементів розгляньте можливість використання |
Синтаксис
getElementsByTagName(tagName)
Параметри
Return
HTMLCollection
Повертає "живу" псевдо-колекцію
HTMLCollection
, що містить елементи з відповідним ім'ям тегу в порядку їх появи в документі. Якщо жодного елемента не знайдено, псевдо-колекціяHTMLCollection
буде порожньою. Ця колекція автоматично оновлюється при змінах у структурі документа, відображаючи додавання або видалення відповідних елементів.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
8 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
- |
- |
Приклади
Цей приклад демонструє використання методу getElementsByTagName()
для отримання колекції елементів li
у списку товарів. Користувач може додавати нові товари до списку за допомогою кнопки "Додати товар" або видалити всі товари за допомогою кнопки "Видалити всі товари".
Метод getElementsByTagName('li')
використовується для отримання колекції елементів li
всередині елемента ul
. Потім ця колекція використовується для видалення всіх елементів li
з батьківського елемента ul
у функції removeItems()
.
Користувач може взаємодіяти зі сторінкою, натискаючи на кнопки, і спостерігати, як список товарів змінюється відповідно до вибраної дії.
У цьому прикладі ми отримуємо колекцію усіх елементів <p>
на веб-сторінці за допомогою методу getElementsByTagName()
. Цей метод повертає "живу" колекцію HTMLCollection, яка автоматично оновлюється при змінах у DOM. Тому ми можемо легко маніпулювати всіма елементами <p>
на сторінці.
// Отримуємо колекцію всіх елементів <p>
const paragraphs = document.getElementsByTagName('p');
// Змінюємо колір тексту для всіх елементів <p>
for (let i = 0; i < paragraphs.length; i++) {
paragraphs[i].style.color = 'red';
}
У цьому прикладі ми використовуємо метод getElementsByTagName()
для отримання елементів <li>
всередині певного елемента <ul>
. Це корисно, коли потрібно обробляти лише окремий список, а не всі списки на сторінці. Ми також демонструємо, як перевірити, чи елемент належить до певного типу перед його обробкою.
// Отримуємо елемент <ul>
const myList = document.getElementById('my-list');
// Отримуємо колекцію елементів <li> всередині елемента <ul>
const listItems = myList.getElementsByTagName('li');
// Перевіряємо, чи елемент є елементом <li>
for (let i = 0; i < listItems.length; i++) {
if (listItems[i].tagName.toLowerCase() === 'li') {
// Додаємо клас до елемента <li>
listItems[i].classList.add('highlighted');
}
}