And*_*rew 3 javascript foreach for-loop selectors-api getelementsbytagname
在编写代码时,我遇到了一些非常奇怪的事情。
下面的代码工作得很好:
document.querySelectorAll("button").forEach(function(e) {
e.addEventListener("click", function() {
console.log(e);
});
});
Run Code Online (Sandbox Code Playgroud)
但是,以下情况不会:
document.getElementsByTagName("button").forEach(function(e) {
e.addEventListener("click", function() {
console.log(e);
});
})
Run Code Online (Sandbox Code Playgroud)
我在这里很困惑。据我所知,document.getElementsByTagName("button")返回与document.querySelectorAll("button"). 我错了吗?这里有什么问题?和 有关系forEach吗?
边注:
我遇到了这篇文章,但它没有回答我的问题。
只是强调:我没有使用 jQuery。
PS - 我已经知道forEachvs 常规for循环之间的差异和优缺点,所以除非forEach是这两个函数无法以相同方式工作的具体原因,否则forEachvsfor辩论与我的问题无关。
不同之处在于从这些方法返回的内容。querySelectorAll返回一个NodeList而getElementsByTagName返回一个HTMLCollection。它们都不支持通用的Array.forEach但 NodeList 实现了它自己的NodeList.forEach这就是你在这里打的。
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |