Heim > Web-Frontend > js-Tutorial > Wie kann ich in JavaScript sicher durch „getElementsByClassName' iterieren?

Wie kann ich in JavaScript sicher durch „getElementsByClassName' iterieren?

DDD
Freigeben: 2024-11-12 11:25:01
Original
596 Leute haben es durchsucht

How to Iterate through `getElementsByClassName` Safely in JavaScript?

So iterieren Sie richtig durch getElementsByClassName

In JavaScript gibt getElementsByClassName eine NodeList und kein Array zurück. Dies kann für Anfänger zu unerwartetem Verhalten führen, wie z. B. einer sich schnell ändernden NodeList während der Iteration.

Lösung 1: Verwenden der item()-Methode

Um eine NodeList ordnungsgemäß zu durchlaufen , können Sie die Methode item() verwenden:

const slides = document.getElementsByClassName("slide");
for (let i = 0; i < slides.length; i++) {
   Distribute(slides.item(i));
}
Nach dem Login kopieren

Diese Methode gibt das i-te Element von zurück NodeList.

Lösung 2: NodeList in ein Array klonen

Alternativ können Sie die NodeList in ein Array klonen und dieses durchlaufen:

const slides = document.getElementsByClassName("slide");
const slidesArray = Array.from(slides);
for (let slide of slidesArray) {
   Distribute(slide);
}
Nach dem Login kopieren

Diese Lösung wird bevorzugt, wenn möglicherweise verschachtelte Folien vorhanden sind, da dadurch eine statische Kopie davon erstellt wird NodeList.

Wichtiger Hinweis

Es ist wichtig zu bedenken, dass sich die NodeList ändern kann, wenn der DOM-Baum innerhalb der Distribute-Funktion geändert wird. Daher ist es wichtig, die Methode item() zu verwenden oder die NodeList zu klonen, bevor Sie das DOM ändern.

Das obige ist der detaillierte Inhalt vonWie kann ich in JavaScript sicher durch „getElementsByClassName' iterieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage