Vous pouvez utiliser Array.from
pour 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 getElementsByClassName
obsolète) retourne une collection qui a forEach
nativement, d'autres méthodes comme map
ou filter
manquent, 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 () {...})
.