Kurt: Knoten löschen ergibt Fehler

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

  1. 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

    1. @@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'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
  2. 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
    
    1. 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