【问题标题】:forEach() Method Throwing an Error [duplicate]forEach() 方法引发错误 [重复]
【发布时间】:2017-12-01 00:41:01
【问题描述】:

我有一个 forEach 方法来循环一些 div 并返回所说的 div。当我使用以下代码时,它会引发错误并说 forEach 不是函数。

当我控制台记录 myDiv 时,它确实返回值,所以我知道 var myDiv 正在工作并返回一个类似数组的对象,但 forEach 方法会引发错误。

JAVASCRIPT

var mydiv = document.getElementsByTagName('div');

mydiv.forEach(function(item, index) {
 console.log(item, index);
});

CSS

 body {display: flex;}
.box {width: 100px; height: 100px; background: red; margin: 0 10px;}

HTML

<div></div>
<div></div>

【问题讨论】:

  • forEach 仅适用于数组,不适用于类数组对象。
  • .getElementsByTagName() 不返回数组。 一些浏览器在 NodeList 对象上实现了数组原型函数,但不是全部。

标签: javascript foreach


【解决方案1】:

尝试HTML5 的选择器 API querySelectorAll() 而不是 getElementsByTagName()

document.querySelectorAll('div');

var mydiv = document.querySelectorAll('div');

mydiv.forEach(function(item, index) {
 console.log(item, index);
});
<div></div>
<div></div>

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
  • 1970-01-01
相关资源
最近更新 更多