Maison > interface Web > js tutoriel > Pourquoi « document.getElementsByClassName().forEach » ne fonctionne-t-il pas et comment puis-je y remédier ?

Pourquoi « document.getElementsByClassName().forEach » ne fonctionne-t-il pas et comment puis-je y remédier ?

DDD
Libérer: 2024-12-06 07:39:11
original
876 Les gens l'ont consulté

Why Doesn't `document.getElementsByClassName().forEach` Work, and How Can I Fix It?

Utilisation de Array.forEach avec getElementsByClassName

Lorsque vous tentez de parcourir des éléments DOM à l'aide de document.getElementsByClassName( "myclass" ).forEach, un peut rencontrer l'erreur "document.getElementsByClassName("myclass").forEach n'est pas une fonction." Cela se produit car le résultat de getElementsByClassName n'est pas un tableau mais une HTMLCollection.

Pour résoudre ce problème, il faut convertir la HTMLCollection en tableau avant d'utiliser forEach. Cela peut être fait en utilisant la méthode Array.prototype.forEach.call avec HTMLCollection comme valeur this :

var els = document.getElementsByClassName("myclass");
Array.prototype.forEach.call(els, function(el) {
    // Do stuff here
    console.log(el.tagName);
});
Copier après la connexion

Alternativement, on peut utiliser [].forEach.call:

[].forEach.call(els, function (el) {...});
Copier après la connexion

Dans ES6, la fonction Array.from peut être utilisée :

Array.from(els).forEach((el) => {
    // Do stuff here
    console.log(el.tagName);
});
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal