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 Microsoft Internet Explorer
1 1 1 8 12 5.5
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

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

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

Коментарі

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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