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() залишається корисним інструментом для простого та ефективного вибору елементів за їх тегом.

автор: Bond

Порада

Для більш складних запитів вибору елементів розгляньте можливість використання querySelectorAll(), який дозволяє вибирати елементи за допомогою селекторів CSS. Однак, якщо вам потрібно просто вибрати всі елементи певного типу, getElementsByTagName() може бути більш ефективним і простим у використанні.

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

Пам'ятайте, що getElementsByTagName() повертає "живу" колекцію елементів, яка автоматично оновлюється при змінах у структурі документа. Це може бути перевагою, якщо ви очікуєте, що елементи будуть додаватися або видалятися динамічно. Однак, якщо ви не хочете, щоб колекція змінювалася, розгляньте можливість перетворення її на масив за допомогою Array.from() або поширення (...).

const paragraphs = document.getElementsByTagName("p");
const paragraphsArray = Array.from(paragraphs);
автор: Bond

Синтаксис

getElementsByTagName(tagName)

Повернення

HTMLCollection

Повертає "живу" псевдо-колекцію HTMLCollection, що містить елементи з відповідним ім'ям тегу в порядку їх появи в документі. Якщо жодного елемента не знайдено, псевдо-колекція HTMLCollection буде порожньою. Ця колекція автоматично оновлюється при змінах у структурі документа, відображаючи додавання або видалення відповідних елементів.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 8 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
- -

Приклади

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

У цьому прикладі ми отримуємо колекцію усіх елементів <p> на веб-сторінці за допомогою методу getElementsByTagName(). Цей метод повертає "живу" колекцію HTMLCollection, яка автоматично оновлюється при змінах у DOM. Тому ми можемо легко маніпулювати всіма елементами <p> на сторінці.

HTML

<p>перший абзац</p>
<p>другий абзац</p>

JS

// Отримуємо колекцію всіх елементів <p>
const paragraphs = document.getElementsByTagName('p');

// Змінюємо колір тексту для всіх елементів <p>
for (let i = 0; i < paragraphs.length; i++) {
  paragraphs[i].style.color = 'red';
}
автор: Bond

У цьому прикладі ми використовуємо метод getElementsByTagName() для отримання елементів <li> всередині певного елемента <ul>. Це корисно, коли потрібно обробляти лише окремий список, а не всі списки на сторінці. Ми також демонструємо, як перевірити, чи елемент належить до певного типу перед його обробкою.

HTML

<ul id="my-list">
    <li>перший пункт</li>
    <li>другий пункт</li>
</ul>
<ul>
    <li>перший</li>
    <li>другий</li>
</ul>

JS

// Отримуємо елемент <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');
  }
}
автор: Bond

Цей приклад демонструє використання методу getElementsByTagName() для отримання колекції елементів li у списку товарів. Користувач може додавати нові товари до списку за допомогою кнопки "Додати товар" або видалити всі товари за допомогою кнопки "Видалити всі товари".

Метод getElementsByTagName('li') використовується для отримання колекції елементів li всередині елемента ul. Потім ця колекція використовується для видалення всіх елементів li з батьківського елемента ul у функції removeItems().

Користувач може взаємодіяти зі сторінкою, натискаючи на кнопки, і спостерігати, як список товарів змінюється відповідно до вибраної дії.

автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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