JS метод Document.getElementsByTagName()


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

Метод getElementsByTagName() приймає як аргумент назву тега і повертає живу колекцію елементів, які відповідають цьому тегу у порядку, в якому вони з'являються у документі. Жива колекція означає, що вона автоматично оновлюється при додаванні або видаленні елементів, що відповідають заданому тегу. Це робить getElementsByTagName() надзвичайно потужним інструментом для роботи з HTML-документами, дозволяючи розробникам легко вибирати групи елементів для подальшої обробки або маніпулювання.

Метод getElementsByTagName() має широке застосування у веб-розробці, зокрема при стилізації, динамічному зміні вмісту або при аналізі структури документа. Він може бути використаний для знаходження усіх елементів певного типу, наприклад, усіх <div>, <p> або <a>, що дозволяє розробникам швидко застосовувати стилі, змінювати атрибути або виконувати інші дії над цими елементами.

Розглянемо базовий приклад, де метод getElementsByTagName() використовується для отримання усіх елементів <p> на сторінці та застосування до них певного стилю:

// Отримання усіх параграфів у документі
var paragraphs = document.getElementsByTagName('p');

// Застосування стилю до кожного параграфа
for (var i = 0; i < paragraphs.length; i++) {
    paragraphs[i].style.color = 'blue';
}

У цьому прикладі метод getElementsByTagName() повертає всі елементи <p>, після чого за допомогою циклу кожному параграфу присвоюється колір тексту блакитного кольору.

Розширене застосування

Метод getElementsByTagName() може бути також використаний у складніших сценаріях, наприклад, для динамічного створення списку посилань на основі елементів <a>, які містяться в певному секції документа:

// Отримання усіх посилань у секції з ідентифікатором 'content'
var links = document.getElementById('content').getElementsByTagName('a');

// Створення списку посилань
var list = document.createElement('ul');

for (var i = 0; i < links.length; i++) {
    var item = document.createElement('li');
    var link = document.createElement('a');


    link.href = links[i].href;
    link.textContent = links[i].textContent;
    item.appendChild(link);
    list.appendChild(item);
}

// Додавання списку до документа
document.body.appendChild(list);

У цьому прикладі спочатку отримуються усі елементи <a> в межах елемента з ідентифікатором content. Потім створюється ненумерований список, кожен елемент якого містить посилання з відповідним href та текстом. Такий підхід демонструє, як getElementsByTagName() може сприяти генерації динамічного контенту, базуючись на існуючій структурі HTML-документа.

Підсумовуючи, getElementsByTagName() є незамінним інструментом у веб-розробці, що дозволяє з легкістю взаємодіяти з елементами документа. Він надає розробникам гнучкість та потужність для маніпуляції елементами DOM, спрощуючи процес розробки складних веб-додатків та інтерактивних веб-сторінок.

автор: Bond

Порада

Використовуйте метод getElementsByTagName() для ефективного доступу до всіх елементів заданого типу в межах документа. Це особливо корисно, коли потрібно маніпулювати або аналізувати групу елементів, таких як всі абзаци (p) або всі списки (ul, ol). Наприклад, для зміни стилю всіх абзаців можна використати цикл, щоб перебрати отриману колекцію.

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

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

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

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

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

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

автор: Bond

Синтаксис

getElementsByTagName(name)

Параметри

name

Рядок, що вказує ім'я тегів елементів для пошуку. Спеціальний рядок * представляє всі елементи.

автор: Bond

Повернення

HTMLCollection

Повертає живу колекцію HTMLCollection знайдених елементів у порядку, в якому вони з'являються в дереві документа. Ця колекція автоматично оновлюється при додаванні або видаленні елементів, що відповідають заданому критерію пошуку. Варто зазначити, що, хоча за останньою специфікацією W3C результатом є HTMLCollection, у деяких браузерах на базі WebKit, таких як Safari, може повертатися NodeList.

автор: Bond

Переглядачі

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

Приклади

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

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

HTML

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

JS

// Зміна кольору тексту та фону для всіх параграфів
var paragraphs = document.getElementsByTagName("p");
for (var i = 0; i < paragraphs.length; i++) {
  paragraphs[i].style.color = "blue";
  paragraphs[i].style.backgroundColor = "yellow";
}
автор: Bond

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

HTML

<button>Натисни</button>

JS

// Додавання події "click" до всіх кнопок на сторінці
var buttons = document.getElementsByTagName("button");
for (var i = 0; i < buttons.length; i++) {
  buttons[i].addEventListener("click", function() {
    alert("Кнопка була натиснута");
  });
}
автор: Bond

У цьому прикладі ми додали дві кнопки, кожна з яких змінює колір фону всіх елементів <div> усередині блоку з класом .result. Це демонструє, як за допомогою JavaScript можна взаємодіяти з HTML-елементами, отриманими через getElementsByTagName(), та динамічно змінювати їхні стилі відповідно до дій користувача на сторінці.

автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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