"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment parcourir correctement getElementsByClassName et éviter un comportement imprévisible ?

Comment parcourir correctement getElementsByClassName et éviter un comportement imprévisible ?

Publié le 2024-12-22
Parcourir:101

How to Iterate Correctly Through getElementsByClassName and Avoid Unpredictable Behaviour?

Itérer correctement via getElementsByClassName

Lorsque vous travaillez avec des pages Web, accéder aux éléments par leur nom de classe est une tâche courante. La méthode getElementsByClassName fournit une NodeList, qui représente une collection d'éléments correspondants. Cependant, parcourir une NodeList peut être délicat, en particulier lors de la modification du DOM.

Dans votre cas, vous essayez de parcourir les éléments renvoyés par getElementsByClassName("slide") et d'effectuer une action sur chaque élément. en utilisant la fonction Distribuer. Cependant, vous rencontrez un comportement imprévisible en raison de la nature changeante de NodeList.

La solution consiste à utiliser la méthode item(index) pour récupérer des éléments individuels de NodeList. Voici comment itérer correctement :

const slides = document.getElementsByClassName("slide");

for (let i = 0; i 

En utilisant la méthode item(), vous pouvez accéder à chaque élément de la NodeList par son index. Cela garantit que l'itération reste déterministe, même si le DOM change.

Considérations supplémentaires

Si vos éléments de diapositive peuvent être imbriqués les uns dans les autres, il est important de noter que la méthode item() renverra null pour tous les éléments imbriqués qui n'ont pas le nom de classe spécifié. Pour gérer les diapositives imbriquées, vous pouvez utiliser une technique plus avancée, telle que l'interrogation de tous les éléments d'un conteneur et leur filtrage par nom de classe.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3