Змінна childrenє NodeListекземпляром, і NodeLists не відповідають дійсності, Arrayі тому вони не успадковують forEachметод.
Також деякі браузери насправді його підтримують nodeList.forEach
ES5
Ви можете використовувати sliceз, Arrayщоб перетворити NodeListна належний Array.
var array = Array.prototype.slice.call(children);
Ви також можете просто використовувати, callщоб викликати forEachта передати це NodeListяк контекст.
[].forEach.call(children, function(child) {});
ES6
Ви можете використовувати fromметод, щоб перетворити ваш файл NodeListна Array.
var array = Array.from(children);
Або ви також можете використовувати синтаксис поширення приблизно... так
let array = [ ...children ];
Хакер, який можна використати, є, NodeList.prototype.forEach = Array.prototype.forEachа потім можна використовувати forEachз будь-яким NodeListбез необхідності кожного разу їх конвертувати.
NodeList.prototype.forEach = Array.prototype.forEach
var children = element.childNodes;
children.forEach(function(item){
console.log(item);
});
Дивіться всебічне занурення у NodeLists, Arrays, перетворення NodeLists та розуміння DOM для гарного пояснення та інших способів зробити це.