NodeList.prototype.forEach()

El métodoforEach() de la interfaseNodeList llama a la función callback proporcionada como parámetro una vez para cadapar de valores en la lista, en el orden en que se insertaron.

Syntax

nodeList.forEach(callback[, thisArg]);

Parámetros

callback
Función a ser ejecutada paracada elemento, tomando eventualmente 3 argumentos:
currentValue
El valor que esta siendo procesado en la lista de nodos.
currentIndex
El índice del elemento que esta siendo procesado en la lista de nodos.
listObj
El objeto NodeList al que se está aplicando el métodoforEach().
thisArg Optional
Valor a ser usado como this al ejecutarcallback.

Valor Retornado

undefined.

Excepciones

Ninguna.

Ejemplo

var nodo = document.createElement("div");
var infante1 = document.createElement("p");
var infante2 = document.createTextNode("hey");
var infante3 = document.createElement("span");

nodo.appendChild(infante1);
nodo.appendChild(infante2);
nodo.appendChild(infante3);

var list = nodo.childNodes;

list.forEach( 
  function(currentValue, currentIndex, listObj) { 
    console.log(currentValue + ', ' + currentIndex + ', ' + this); 
  },
  'miEsteArg'
);

resulta en:

[object HTMLParagraphElement], 0, miEsteArg
[object Text], 1, miEsteArg
[object HTMLSpanElement], 2, miEsteArg

Polyfill

Este polyfill le da compatibilidad a todos los navegadores que soportan 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);
       }
    };
}

ó

if (window.NodeList && !NodeList.prototype.forEach) {
    NodeList.prototype.forEach = Array.prototype.forEach;
}

El comportamiento ateriror esta implementado en muchos navegadores. NodeList.prototype.forEach (Chrome, Firefox for example).

Especificaciones

Especificación

Status Comentarios
DOM
La definición de 'NodeList' en esta especificación.
Living Standard DefineNodeList como<Nodo>iterable
Web IDL
La definición de 'forEach' en esta especificación.
Candidate Recommendation DefineforEachen declaracionesiterables

Compatibilidad en Navegadores

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
forEachChrome Soporte completo 51Edge Soporte completo 16Firefox Soporte completo 50IE Sin soporte NoOpera Soporte completo 38Safari Soporte completo 10WebView Android Soporte completo 51Chrome Android Soporte completo 51Firefox Android Soporte completo 50Opera Android Soporte completo 41Safari iOS Soporte completo 10Samsung Internet Android Soporte completo 5.0

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte

Ver también