7

这是我的演示。

我正在尝试让 JavaScriptforEach方法在 Google Chrome 中工作。
Caniuse没有太大帮助。:(

任何帮助,将不胜感激!谢谢!

4

4 回答 4

14

将 NodeList 转换为数组:

nodes = Array.prototype.slice.call(nodes);

然后你就可以使用.forEach()它了。

于 2012-05-08T05:38:03.557 回答
2

document.querySelectorAll不返回数组,而是一个NodeList没有方法“forEach”的对象。

错误消息显示:

Object #<NodeList> has no method 'forEach'

检查这篇文章,它解释了这一点。

于 2012-05-08T05:30:16.173 回答
0

只需使用一些现代 JavaScript 转换它:

let paragraphs = Array.from(nodes)
paragraphs.forEach(paragraph => console.log(`This is the paragraph: ${paragraph}`);
于 2017-10-10T03:37:50.660 回答
0

是的,您可以forEach在数组上调用。

在您的情况下,数据可能不在数组中,它可能是一个HTMLCollection,这就是您看到此错误的原因,您可以通过将数据更改为来解决此问题Array,如下所示:-

// HTMLCollection
const allJobs = document.getElementsByClassName('component_4d072');

// Array
const arrayAllJobs = [...allJobs];

// and now you can run
arrayAllJobs.forEach(jobs => console.log(jobs));


于 2020-06-16T06:35:15.183 回答