【发布时间】:2019-08-06 02:25:26
【问题描述】:
随着我在这个网站上回答问题,我开始更多地使用.forEach()。我也开始更多地使用document.getElementsByClassName() 或document.querySelectorAll()。
我最近注意到,.forEach() 有时有效,有时无效。经过一番研究,我发现你不能通过NodeList 来.forEach()。然后我去了this answer,发现你可以在NodeList上.forEach()。
注意:我还在下面添加了 2 个 sn-ps,其中 .forEach() 可以工作,但不能工作。它似乎适用于document.querySelectorAll(),但不适用于document.getElementsByClassName(),但为什么呢?他们不是都返回NodeList吗?
TL;DR:为什么我可以在一些NodeLists 上.forEach(),但不是全部?
.forEach() 在这个 sn-p 上工作。
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() 在这个 sn-p 上不起作用。
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>
【问题讨论】:
标签: javascript arrays html