Vous pouvez utiliser Array.frompour convertir la collection en tableau, ce qui est beaucoup plus propre que Array.prototype.forEach.call:
Array.from(document.getElementsByClassName("myclass")).forEach(
function(element, index, array) {
// do stuff
}
);
Dans les anciens navigateurs qui ne prennent pas en charge Array.from, vous devez utiliser quelque chose comme Babel.
ES6 ajoute également cette syntaxe:
[...document.getElementsByClassName("myclass")].forEach(
(element, index, array) => {
// do stuff
}
);
Reste la déstructuration avec des ...travaux sur tous les objets de type tableau, non seulement les tableaux eux-mêmes, mais une bonne vieille syntaxe de tableau est utilisée pour construire un tableau à partir des valeurs.
Alors que la fonction alternative querySelectorAll(qui rend un peu getElementsByClassNameobsolète) retourne une collection qui a forEachnativement, d'autres méthodes comme mapou filtermanquent, donc cette syntaxe est toujours utile:
[...document.querySelectorAll(".myclass")].map(
(element, index, array) => {
// do stuff
}
);
[...document.querySelectorAll(".myclass")].map(element => element.innerHTML);
[].forEach.call(elsArray, function () {...}).