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
nodeList.forEach(callback); nodeList.forEach(callback, thisArg);
Parameters
- callback
- Function to execute for each element, eventually taking 3 arguments:
 - currentValue
- The current element being processed in the array.
- currentIndex
- The index of the current element being processed in the array.
- listObj
- The NodeList object that forEach()is being applied to.
 
- thisArg- Optional
- Value to use as thiswhen executingcallback.
Return value
Exceptions
None.
Example
var node = document.createElement("div");
var kid1 = document.createElement("p");
var kid2 = document.createTextNode("hey");
var kid3 = document.createElement("span");
node.appendChild(kid1);
node.appendChild(kid2);
node.appendChild(kid3);
var list = node.childNodes;
list.forEach( 
  function(value, key, listObj) { 
    console.log(value + ' ' + key + "/" + this); 
  },
  "myThisArg"
);
results in:
[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);
        }
    };
}
Specifications
| Specification | Status | Comment | 
|---|---|---|
| DOM The definition of 'NodeList' in that specification. | Living Standard | Defines NodeListasiterable<Node> | 
| Web IDL The definition of 'forEach' in that specification. | Candidate Recommendation | Defines forEachoniterabledeclarations | 
Browser Compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) | 
|---|---|---|---|---|---|
| Basic support | 51 | 50 (50) | No support | 38 | 10 (maybe prior) | 
| Feature | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android | 
|---|---|---|---|---|---|---|---|
| Basic support | No support | (Yes) | 50.0 (50) | No support | (Yes) | 10 | 51 | 
See also
Document Tags and Contributors
    
    Tags: 
    
  
                    
                       Contributors to this page: 
        gushecht, 
        christiansany, 
        JorisW, 
        Makyen, 
        Gabrys1, 
        destin.moulton, 
        valtlai, 
        jrencz, 
        chrisbruford, 
        teoli
                    
                    
                       Last updated by:
                      gushecht,