我正在尝试让 JavaScriptforEach
方法在 Google Chrome 中工作。
Caniuse没有太大帮助。:(
任何帮助,将不胜感激!谢谢!
将 NodeList 转换为数组:
nodes = Array.prototype.slice.call(nodes);
然后你就可以使用.forEach()
它了。
document.querySelectorAll
不返回数组,而是一个NodeList
没有方法“forEach”的对象。
错误消息显示:
Object #<NodeList> has no method 'forEach'
检查这篇文章,它解释了这一点。
只需使用一些现代 JavaScript 转换它:
let paragraphs = Array.from(nodes)
paragraphs.forEach(paragraph => console.log(`This is the paragraph: ${paragraph}`);
是的,您可以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));