Maison > interface Web > js tutoriel > le corps du texte

Comment parcourir correctement les NodeLists : une solution pour getElementsByClassName ?

DDD
Libérer: 2024-11-11 10:33:03
original
436 Les gens l'ont consulté

How to Iterate Through NodeLists Correctly: A Solution for getElementsByClassName?

Itérer correctement NodeList : une solution pour getElementsByClassName

Lorsque vous travaillez avec des NodeLists, qui sont des valeurs de retour de la fonction getElementsByClassName, il est crucial d'utiliser la bonne approche d'itération pour éviter comportement inattendu comme la modification de la longueur et de l'ordre des éléments.

Comprendre les NodeLists

Contrairement aux tableaux, les NodeLists sont des collections dynamiques qui se mettent à jour dynamiquement en fonction des modifications de l'arborescence DOM. Cela signifie que le contenu de la NodeList peut changer au cours de l'itération, ce qui peut entraîner des problèmes.

Solution

Pour parcourir efficacement une NodeList, utilisez la méthode item pour accéder éléments individuels. Cela garantit que les éléments sont récupérés de la NodeList sans la modifier :

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

Exemple avec des diapositives imbriquées

Dans les cas où les diapositives sont imbriquées dans d'autres éléments, vous peut avoir besoin d'une approche alternative :

const slides = document.getElementsByClassName("slide");
const clonedSlides = [];

// Clone each slide to prevent DOM updates during iteration
for (let i = 0; i < slides.length; i++) {
  clonedSlides.push(slides.item(i).cloneNode(true));
}

// Iterate through the cloned slides and perform necessary actions
for (let i = 0; i < clonedSlides.length; i++) {
  Distribute(clonedSlides[i]);
}
Copier après la connexion

En clonant les diapositives, vous créez un instantané du DOM, garantissant que le processus d'itération ne sera pas affecté par les modifications apportées à l'arborescence 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