JS метод DOMTokenList.entries()
Загальний опис
Метод entries()
об'єкта DOMTokenList
повертає ітератор, який надає пари ключ-значення для кожного токена (класу) в списку класів елемента DOM. Цей метод корисний для ітерації над класами елемента, а також для отримання інформації про їх індекси та значення. Він часто використовується у поєднанні з циклами або іншими ітераційними методами, такими як for...of
або метод forEach
.
Синтаксис методу entries()
наступний:
elementNode.classList.entries();
Він не приймає жодних аргументів і повертає новий об'єкт ітератора, який містить пари ключ-значення для кожного класу в списку класів елемента. Ключ представляє індекс класу в списку, а значення - саме ім'я класу.
Розглянемо простий приклад використання методу entries()
:
<div id="myDiv" class="initial active highlighted"></div>
const myDiv = document.getElementById('myDiv');
const classEntries = myDiv.classList.entries();
for (const [index, className] of classEntries) {
console.log(`Клас ${index}: ${className}`);
}
У цьому прикладі ми спочатку отримуємо посилання на елемент div
за його id
. Потім ми викликаємо метод entries()
на об'єкті classList
цього елемента, що повертає ітератор з парами ключ-значення для кожного класу. Далі ми використовуємо цикл for...of
для ітерації над цим ітератором. Для кожної ітерації ми деструктуризуємо пару ключ-значення в окремі змінні index
та className
і виводимо їх у консоль.
Метод entries()
також може бути корисним у поєднанні з іншими методами масивів або об'єктів, такими як map
, filter
або reduce
. Наприклад, ви можете створити новий масив, що містить лише певні класи:
const selectedClasses = Array.from(myDiv.classList.entries())
.filter(([index, className]) => className.startsWith('selected'))
.map(([index, className]) => className);
У цьому прикладі ми спочатку перетворюємо ітератор, що повертається методом entries()
, на масив за допомогою Array.from
. Потім ми використовуємо метод filter
для відфільтровування лише тих класів, які починаються з 'selected'
. Нарешті, ми застосовуємо метод map
для створення нового масиву, що містить лише імена класів.
Підсумовуючи, метод entries()
об'єкта DOMTokenList
є потужним інструментом для отримання інформації про класи елемента DOM та маніпуляцій з ними. Він дозволяє ітеруватися над класами, отримувати їх індекси та значення, а також використовувати ці дані в поєднанні з іншими методами для створення більш складних і гнучких рішень у веб-додатках.
Порада: | Комбінуйте метод |
Порада: | Використовуйте метод |
Порада: | Для досвідчених програмістів: розглядайте можливість використання методу |
Синтаксис
entries()
Параметри
Return
iterator
Повертає ітератор, який містить всі пари індекс-значення для кожного елемента.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
42 |
50 |
10.1 |
29 |
16 |
Переглядач | ||||
---|---|---|---|---|
42 |
42 |
50 |
10.3 |
Переглядач | ||
---|---|---|
- |
- |
Приклади
У цьому прикладі ми демонструємо використання методу entries()
для отримання списку класів елемента div
і візуалізації їх у вигляді списку ul
. При натисканні на кнопку "Перемикнути класи" ми ітеруємося над класами елемента div
за допомогою методу entries()
та циклу for...of
, створюючи елемент li
для кожного класу з його індексом та значенням. Потім ми очищаємо список ul
і додаємо до нього всі створені елементи li
, відображаючи поточні класи елемента. Крім того, ми перемикаємо класи highlighted
та bordered
на елементі div
, що змінює його зовнішній вигляд. Користувач може взаємодіяти з прикладом, натискаючи на кнопку та спостерігаючи зміни в списку класів та стилях елемента div
.
У цьому прикладі ми ітеруємося над класами елемента div
за допомогою методу entries()
та циклу for...of
. Для кожної ітерації ми виводимо індекс та значення класу в консоль.
<div id="myDiv" class="initial active highlighted"></div>
<script>
const myDiv = document.getElementById('myDiv');
const classEntries = myDiv.classList.entries();
for (const [index, className] of classEntries) {
console.log(`Клас ${index}: ${className}`);
}
</script>
У цьому прикладі ми створюємо новий масив, що містить лише класи елемента div
, які починаються з selected
. Для цього ми використовуємо метод entries()
у поєднанні з методами масиву filter
та map
.
<div id="myDiv" class="initial selected-item selected-active highlighted"></div>
<script>
const myDiv = document.getElementById('myDiv');
const selectedClasses = Array.from(myDiv.classList.entries())
.filter(([index, className]) => className.startsWith('selected'))
.map(([index, className]) => className);
console.log(selectedClasses); // ['selected-item', 'selected-active']
</script>