Поскольку я отвечал на вопросы на этом сайте, я начал использовать .forEach()
намного больше.Я также начал использовать document.getElementsByClassName()
или document.querySelectorAll()
и многое другое.
Недавно я заметил, что иногда .forEach()
работает, а иногда нет.После небольшого исследования я обнаружил, что вы не можете .forEach()
через NodeList
.Затем я пошел на этот ответ и обнаружил, что вы можете .forEach()
в NodeList.
Примечание: Я также добавил ниже 2 фрагмента, в которых .forEach()
работает и не работает.Кажется, работает для document.querySelectorAll()
, но не document.getElementsByClassName()
, но почему?Разве они оба не возвращают NodeList
?
TL; DR: Почему я могу .forEach()
на некоторых NodeLists
, но не на всех?
.forEach()
работает над этим фрагментом.
let text = document.querySelectorAll(".text");
console.log(typeof text);
text.forEach(e => {
console.log(e);
});
<div class="text">Text</div>
<div class="text">Text</div>
<div class="text">Text</div>
<div class="text">Text</div>
.forEach()
не работает с этим фрагментом.
let text = document.getElementsByClassName("text");
console.log(typeof text);
text.forEach(e => {
console.log(e);
});
<div class="text">Text</div>
<div class="text">Text</div>
<div class="text">Text</div>
<div class="text">Text</div>