NodeList.prototype.forEach()
The forEach() method of the NodeList
interface calls the callback given in parameter once for each value pair in the list, in
insertion order.
Syntax
someNodeList.forEach(callback[, thisArg]);
Parameters
callback-
A function to execute on each element of
someNodeList. It accepts 3 parameters:currentValue-
The current element being processed in
someNodeList. currentIndexOptional-
The index of the
currentValuebeing processed insomeNodeList. listObjOptional-
The
someNodeListthatforEach()is being applied to.
thisArgOptional-
Value to use as
thiswhen executingcallback.
Return value
Example
let node = document.createElement("div");
let kid1 = document.createElement("p");
let kid2 = document.createTextNode("hey");
let kid3 = document.createElement("span");
node.appendChild(kid1);
node.appendChild(kid2);
node.appendChild(kid3);
let list = node.childNodes;
list.forEach(
function(currentValue, currentIndex, listObj) {
console.log(currentValue + ', ' + currentIndex + ', ' + this);
},
'myThisArg'
);
The above code results in the following:
[object HTMLParagraphElement], 0, myThisArg [object Text], 1, myThisArg [object HTMLSpanElement], 2, myThisArg
Polyfill
This polyfill adds compatibility to all Browsers supporting ES5:
if (window.NodeList && !NodeList.prototype.forEach) {
NodeList.prototype.forEach = function (callback, thisArg) {
thisArg = thisArg || window;
for (var i = 0; i < this.length; i++) {
callback.call(thisArg, this[i], i, this);
}
};
}
OR
if (window.NodeList && !NodeList.prototype.forEach) {
NodeList.prototype.forEach = Array.prototype.forEach;
}
The above behavior is how many browsers actually implement
NodeList.prototype.forEach() (Chrome, for example).
Specifications
No specification found
No specification data found for api.NodeList.forEach.
Check for problems with this page or contribute a missing spec_url to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.
Browser compatibility
BCD tables only load in the browser