Puede usar Array.from
para convertir la colección en matriz, que es mucho más limpia que Array.prototype.forEach.call
:
Array.from(document.getElementsByClassName("myclass")).forEach(
function(element, index, array) {
// do stuff
}
);
En los navegadores más antiguos que no son compatibles Array.from
, debe usar algo como Babel.
ES6 también agrega esta sintaxis:
[...document.getElementsByClassName("myclass")].forEach(
(element, index, array) => {
// do stuff
}
);
Descanse la desestructuración con ...
trabajos en todos los objetos similares a una matriz, no solo las matrices en sí mismas, sino que se usa una buena sintaxis de matriz antigua para construir una matriz a partir de los valores.
Mientras que la función alternativa querySelectorAll
(que hace getElementsByClassName
obsoleta) devuelve una colección que tiene forEach
nativamente, otros métodos como map
o filter
faltan, por lo que esta sintaxis sigue siendo útil:
[...document.querySelectorAll(".myclass")].map(
(element, index, array) => {
// do stuff
}
);
[...document.querySelectorAll(".myclass")].map(element => element.innerHTML);
[].forEach.call(elsArray, function () {...})
.