JS метод DOMTokenList.forEach()


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

Метод forEach() у контексті об'єкта DOMTokenList є потужним інструментом для перебору та обробки елементів цього списку. DOMTokenList - це спеціальний об'єкт, який представляє список класів або токенів елемента DOM. Цей метод дозволяє виконати певну функцію для кожного елемента списку безпосередньо, замість того, щоб використовувати класичний цикл for або forEach масивів.

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

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

Основний приклад використання методу forEach() - це зміна стилів або додавання/видалення класів елементів. Наприклад, він може використовуватися для зміни відображення елементів на сторінці залежно від їх класів або для фільтрації певних елементів за їх класами.

// Приклад використання методу forEach() для зміни стилів елементів
var elements = document.querySelectorAll('.item'); // Отримуємо всі елементи з класом 'item'
elements.forEach(function(element) {
    element.style.color = 'red'; // Змінюємо колір тексту кожного елемента на червоний
});

Крім того, метод forEach() може бути використаний для виконання будь-яких інших дій з елементами списку в залежності від потреб програми. Він дозволяє легко і ефективно працювати з елементами DOMTokenList та виконувати маніпуляції з їхніми токенами.

автор: Bond

Порада

Пам'ятайте, що метод forEach() не може бути викликаний безпосередньо на масиві. Якщо ви хочете використати його на масиві класів, спочатку скористайтеся методом Array.from() для перетворення DOMTokenList на масив, а потім використовуйте forEach(). Наприклад:

var classes = document.getElementById('myElement').classList;
Array.from(classes).forEach(function(className) {
   console.log(className); // Виводимо кожен клас елемента
});
автор: Bond
Порада

Використовуйте метод forEach() для виконання дій над елементами DOMTokenList з урахуванням їхнього порядку. Це особливо важливо при зміні стилів або порядку елементів на сторінці. Наприклад:

var classes = document.getElementById('myElement').classList;
classes.forEach(function(className, index) {
   console.log(`Class ${className} has index ${index}`); // Виводимо клас та його індекс
});
автор: Bond
Порада

Не забувайте, що функція, яку ви передаєте в метод forEach(), приймає один параметр - це поточний елемент DOMTokenList. Цей параметр може мати будь-яке ім'я, але в інших прикладах часто використовується ім'я item. Наприклад:

var classes = document.getElementById('myElement').classList;
classes.forEach(function(item) {
   console.log(item); // Виводимо кожен токен DOMTokenList
});
автор: Bond

Синтаксис

forEach(callback)
forEach(callback, thisArg)

Параметри

callback

Функція, яка буде викликана для кожного елемента списку, приймаючи три аргументи. Приймає три аргументи:

  • currentValue (обов'язковий): Поточне значення елемента списку.
  • currentIndex (необов'язковий): Індекс поточного елемента списку.
  • listObj (необов'язковий): Об'єкт DOMTokenList, для якого викликається метод forEach().
автор: Bond

thisArg

Значення, яке буде використовуватися як this під час виконання функції callback.

автор: Bond

Повернення

none

Повертає undefined.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
42 50 10.1 29 16
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
42 42 50 10.3

Приклади

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

У цьому прикладі ми використовуємо метод forEach() для виведення у консоль всіх класів елемента div. Це простий приклад, який демонструє основне використання методу для ітерації над всіма значеннями DOMTokenList.

HTML

<div>Демонстраційний блок</div>

JS

const div = document.querySelector('div');
const classes = div.classList;

classes.forEach(className => {
  console.log(className);
});
автор: Bond

У цьому більш складному прикладі ми використовуємо forEach() для додавання або видалення класів елементів на основі певних умов. Це демонструє, як метод forEach() може бути використаний для маніпуляції класами елементів у більш складних сценаріях.

HTML

<div class="item">перший елемент item</div>
<div class="item">другий елемент item</div>

JS

const elements = document.querySelectorAll('.item');

elements.forEach(element => {
  const isActive = element.classList.contains('active');
  const isCompleted = element.classList.contains('completed');

  if (isActive && !isCompleted) {
    element.classList.add('in-progress');
  } else if (!isActive && isCompleted) {
    element.classList.remove('completed');
    element.classList.add('archived');
  }
});
автор: Bond

У цьому прикладі ми створюємо інтерфейс для додавання та відмічання завдань як завершених. Використовується метод forEach() для ітерації над масивом завдань та рендерингу їх у списку.

При завантаженні сторінки ми рендеримо список завдань за допомогою функції renderTasks(). Ця функція очищає список та ітерує над масивом tasks за допомогою forEach(). Для кожного завдання створюється елемент `

автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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