„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie vermeide ich zusätzliche Elemente beim Durchlaufen ausgewählter Elemente mit document.querySelectorAll?

Wie vermeide ich zusätzliche Elemente beim Durchlaufen ausgewählter Elemente mit document.querySelectorAll?

Veröffentlicht am 13.12.2024
Durchsuche:949

How to Avoid Extra Elements When Looping Through Selected Items with document.querySelectorAll?

Schleife durch ausgewählte Elemente mit document.querySelectorAll

Problem:
Beim Versuch, eine Schleife durch ausgewählte Elemente durchzuführen Bei Verwendung von document.querySelectorAll enthält die Ausgabe zusätzliche, irrelevante Elemente items.

Beispiel:

var checkboxes = document.querySelectorAll('.check');
for( i in checkboxes) {
  console.log(checkboxes[i]);
}

Ausgabe:












10
item()
namedItem()

Das Problem entsteht, weil document.querySelectorAll eine NodeList zurückgibt, bei der es sich um ein Array-ähnliches Objekt handelt. Allerdings unterstützt NodeList keine Array-Methoden wie forEach.

Lösung:

Um die ausgewählten Elemente ordnungsgemäß zu durchlaufen, konvertieren Sie die NodeList in ein Array. Dafür gibt es mehrere Möglichkeiten:

  1. Spread-Syntax (ES2015):

    const divs = [...document.querySelectorAll('div')];
    divs.forEach((div) => {
      // Do something with each div
    });
  2. Array.from():

    const divs = Array.from(document.querySelectorAll('div'));
    divs.forEach((div) => {
      // Do something with each div
    });
  3. Knotenindizes durchlaufen:

    const checkboxes = document.querySelectorAll('.check');
    for (let i = 0; i 
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729429999 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3