Javascript Elemente aus DOM entfernen

Gast #5339799
Lesenswert?
• ▲
▼
Hallo,
mein Code ist folgender (natürlich nur ein Ausschnitt):
1
var gruppe = document.getElementById("uebergeordnet");
2
var inhalt = document.getElementsByClassName("inhalt");
3
for(var i=0; i<inhalt.length; ++i)
4
     gruppe.removeChild(inhalt[i]);
Mein Ziel ist, dass alle Elemente, sie gehören alle der Klasse inhalt 
an, aus dem div uebergeordnet gelöscht werden, das funzt aber nicht so 
richtig, es werden nur die Hälfte aller Elemente gelöscht, das liegt, 
glaube ich, daran, dass die for-Schleife nicht oft genug durchgeführt 
wird, meine Frage wäre jetzt, warum.

Vielen Dank im Vorraus,
flipchartFresser
Gast #5339848
Lesenswert?
• ▲
▼
flipchartFresser schrieb:
> Hallo,
> [...]
> richtig, es werden nur die Hälfte aller Elemente gelöscht, das liegt,
> glaube ich, daran, dass die for-Schleife nicht oft genug durchgeführt
> wird, meine Frage wäre jetzt, warum.
>
> Vielen Dank im Vorraus,
> flipchartFresser

Vielleicht weil inhalt.length keine Konstante ist und sich durch

 gruppe.removeChild(inhalt[i]);

ändert?
#5340585
Lesenswert?
• ▲
▼
Jim M. schrieb:
> flipchartFresser schrieb:
>> glaube ich, daran, dass die for-Schleife nicht oft genug durchgeführt
>> wird, meine Frage wäre jetzt, warum.
>
> Weil Du sie falsch herum ausführst. Du müsstest von inhalt.length nach
> unten zu Null iterieren.
>
> Hausaufgabe: Finde heraus warum.

Hallo,

es sollte reichen:
1
while (Inhalt.length)
2
  gruppe.removeChild(inhalt[0]);

es sollte vor allem reichen, das Prinzip zu verdeutlichen.

Gruß,
Michael
Gast #5341185
Lesenswert?
• ▲
▼
Hallo,
ja ja, so dumme Fehler erkennt meistens nur ein "Externer", großes 
Dankeschön.
Außerdem habe ich auf w3c schools einen meiner Meinung nach noch 
besseren Code gefunden:
1
var uebergeordnet = document.getElementById("uebergeordnet");
2
while(uebergeordnet.hasChildNode())
3
     uebergeordnet.removeChild(uebergeordnet.firstChild);
Nochmal vielen Dank,
flipchartFresser

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.