Maison > interface Web > js tutoriel > Comment parcourir « getElementsByClassName » en toute sécurité en JavaScript ?

Comment parcourir « getElementsByClassName » en toute sécurité en JavaScript ?

DDD
Libérer: 2024-11-12 11:25:01
original
597 Les gens l'ont consulté

How to Iterate through `getElementsByClassName` Safely in JavaScript?

Comment parcourir correctement getElementsByClassName

En JavaScript, getElementsByClassName renvoie une NodeList, pas un tableau. Cela peut conduire à un comportement inattendu pour les débutants, comme une NodeList qui change rapidement pendant l'itération.

Solution 1 : Utiliser la méthode item()

Pour parcourir correctement une NodeList , vous pouvez utiliser la méthode item() :

const slides = document.getElementsByClassName("slide");
for (let i = 0; i < slides.length; i++) {
   Distribute(slides.item(i));
}
Copier après la connexion

Cette méthode renvoie le ième élément du NodeList.

Solution 2 : Cloner NodeList dans un tableau

Alternativement, vous pouvez cloner la NodeList dans un tableau et parcourir cela :

const slides = document.getElementsByClassName("slide");
const slidesArray = Array.from(slides);
for (let slide of slidesArray) {
   Distribute(slide);
}
Copier après la connexion

Cette solution est préférable lorsqu'il peut y avoir des diapositives imbriquées, car elle crée une copie statique du NodeList.

Remarque importante

Il est essentiel de se rappeler que lors de la modification de l'arborescence DOM dans la fonction Distribute, la NodeList peut changer. Par conséquent, il est crucial d'utiliser la méthode item() ou de cloner la NodeList avant de modifier le DOM.

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