NodeList.prototype.forEach()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

El método forEach() 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étodo forEach().

thisArg Opcional

Valor a ser usado como this al ejecutar callback.

Valor Retornado

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:

js
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);
    }
  };
}

ó

js
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

Specification
DOM
# interface-nodelist

Compatibilidad con navegadores

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
forEach

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Ver también