Knoten löschen ergibt Fehler
Kurt
- javascript
0 Kurt0 Vinzenz Mai0 Kurt
Hallo,
ich nutze aus diesem Beitrag folgenden Code, um die Childknoten eines DIVs zu löschen, die zuvor per JS erzeugt wurden.
function removeAllChildNodes(element) {
while (element.childNodes.length > 0) {
element.removeChild(element.lastChild);
}
}
Die Funktion rufe ich über einen onclick Eventhandler auf.
<div id='haupt' onclick="removeAllChildNodes('werte')">
<div id='werte'></div>
</div>
Während das ganze tadellos in meiner HTML-Datei funktioniert, ist es in meinem php-script verbaut zu folgender Fehlermeldung in der Fehlerkonsole gekommen:
Fehler: element.childNodes is undefined
Was läuft da falsch?
Kurt
Hi
Während das ganze tadellos in meiner HTML-Datei funktioniert, ist es in meinem php-script verbaut zu folgender Fehlermeldung in der Fehlerkonsole gekommen:
Stimmt nicht ganz. So läuft es im HTML tadellos und im php script nicht.
function removeAllChildNodes() {
while (werte.childNodes.length > 0) {
werte.removeChild(werte.lastChild);
}
}
<div id='haupt' onclick="removeAllChildNodes()">
<div id='werte'></div>
</div>
Fehlermeldung in der Fehlerkonsole, wenn es im php-script verbaut ist:
Fehler: werte is not defined
Einfach in einer HTML-Datei verbaut funktioniert das hingegen tadellos. Ich versteh das nicht.
Kurt
@@Kurt:
nuqneH
Einfach in einer HTML-Datei verbaut funktioniert das hingegen tadellos. Ich versteh das nicht.
Ich verstehe auch nicht, warum du in deiner Problembeschreibung nicht erwähnst, worin sich deine statische HTML-Vorlage von der durch PHP generierten Ressource unterscheidet.
Vielleicht fällt dir bei einer vernünftigen Problembeschreibung (siehe Tips für Fragende in der Charta) sogar die Lösung ein.
„Derjenige, der ein Problem am besten beschreiben kann, ist vermutlich der, der es lösen kann.“ (Wo hab ich das her? Hat(te) das nicht ein Stammposter in seiner Signatur?)
Qapla'
Hallo,
ich nutze aus diesem Beitrag folgenden Code, um die Childknoten eines DIVs zu löschen, die zuvor per JS erzeugt wurden.
function removeAllChildNodes(element) {
while (element.childNodes.length > 0) {
element.removeChild(element.lastChild);
}
}
Deine Funktion erwartet einen Knoten, Du jedoch übergibst
> <div id='haupt' onclick="removeAllChildNodes('werte')">
> <div id='werte'></div>
eine Zeichenkette, die den Wert der id des Elementes angibt, dessen Kinder gelöscht werden sollen. Der Aufruf müsste somit lauten:
`onclick="[code lang=javascript]removeAllChildNodes(document.getElementById('werte'))`{:.language-html}"[/code]
Was passiert, wenn es kein solches Element gibt?
Freundliche Grüße
Vinzenz
Hallo Vinzenz,
onclick="[code lang=javascript]removeAllChildNodes(document.getElementById('werte'))
"[/code]
Fantastisch. Jetzt geht es.
Was passiert, wenn es kein solches Element gibt?
Dann ist das "Hauptdiv" auf display:none gestellt.
Erst durch das generieren mittels JS wird das Hauptdiv mit dem onclick-Eventhandler zum Childknots löschen sichtbar.
Danke und freundlichen Gruß, Kurt