«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как избежать дополнительных элементов при циклическом переборе выбранных элементов с помощью document.querySelectorAll?

Как избежать дополнительных элементов при циклическом переборе выбранных элементов с помощью document.querySelectorAll?

Опубликовано 13 декабря 2024 г.
Просматривать:272

How to Avoid Extra Elements When Looping Through Selected Items with document.querySelectorAll?

Циклическое перебор выбранных элементов с помощью document.querySelectorAll

Проблема:
При попытке перебрать выбранные элементы используя document.querySelectorAll, выходные данные включают дополнительные, нерелевантные items.

Пример:

var checkboxes = document.querySelectorAll('.check');
for( i in checkboxes) {
  console.log(checkboxes[i]);
}

Вывод:












10
item()
namedItem()

Проблема возникает потому, что document.querySelectorAll возвращает NodeList, который представляет собой объект, подобный массиву. Однако NodeList не поддерживает такие методы массива, как forEach.

Решение:

Чтобы правильно перебирать выбранные элементы, преобразуйте NodeList в массив. Есть несколько способов сделать это:

  1. Распространение синтаксиса (ES2015):

    const divs = [...document.querySelectorAll('div')];
    divs.forEach((div) => {
      // Do something with each div
    });
  2. Array.from():

    const divs = Array.from(document.querySelectorAll('div'));
    divs.forEach((div) => {
      // Do something with each div
    });
  3. Цикл по индексам узлов:

    const checkboxes = document.querySelectorAll('.check');
    for (let i = 0; i 
Заявление о выпуске Эта статья перепечатана по адресу: 1729429999. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3