Die Variable childrenist eine NodeListInstanz und NodeLists sind nicht wahr Arrayund erben daher die forEachMethode nicht.
Auch einige Browser unterstützen es tatsächlich nodeList.forEach
ES5
Sie können slicevon verwenden Array, um das NodeListin ein richtiges umzuwandeln Array.
var array = Array.prototype.slice.call(children);
Sie können es auch einfach verwenden call, um forEaches NodeListals Kontext aufzurufen und zu übergeben .
[].forEach.call(children, function(child) {});
ES6
Sie können die fromMethode verwenden, um Ihre NodeListin eine zu konvertieren Array.
var array = Array.from(children);
Oder Sie können auch die Spread-Syntax... wie folgt verwenden
let array = [ ...children ];
Ein Hack, der verwendet werden kann, ist NodeList.prototype.forEach = Array.prototype.forEachund Sie können ihn dann forEachmit jedem verwenden, NodeListohne sie jedes Mal konvertieren zu müssen.
NodeList.prototype.forEach = Array.prototype.forEach
var children = element.childNodes;
children.forEach(function(item){
console.log(item);
});
Eine ausführliche Erklärung und andere Möglichkeiten finden Sie unter Ein umfassender Einblick in NodeLists, Arrays, Konvertieren von NodeLists und Verstehen des DOM .