変数children
はNodeList
インスタンスであり、NodeList
sは真Array
ではないため、forEach
メソッドを継承しません。
また、一部のブラウザは実際にそれをサポートしています nodeList.forEach
ES5
slice
fromArray
を使用し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の理解に関する包括的な詳細を参照してください。