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 ejecutarcallback
.
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:
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
Specification |
---|
DOM Standard # interface-nodelist |
Compatibilidad con navegadores
BCD tables only load in the browser