Horst: Knoten löschen

Hallo Ihr Lieben,

ich komme einfach nicht weiter, irgendwo klemmts bei mir.

Bitte mal Testen und in den QuellCode (ziemlich weit unten bei <!-- AJAX -->) schauen auf:
http://rolfrost.de/cgi-bin/words_test.cgi

Nehme ich den Suchbegriff "Stall" kommt ein Ergebnis, was auch dabei bleibt, sofern ich erneut [Dokumente finden] klicke.

Nehme ich jedoch den Suchbegriff "Kaffee" kommen anfangs genau 7 Ergebnisseiten, ein Klick auf [Dokumente finden] reduziert diese Liste sukzessive, anstatt die ganze Liste zu löschen und neu aufzubauen.

Und beim Wechsel zwischen den Suchbegriffen passieren auch diese unschönen Dinge.

Wo ist der Fehler, bitte mal um Hilfestellung.

Viele Grüße,
Hotte

  1. Lieber Horst,

    meinst Du diesen Code hier?

    function killTheKids(){  
        // Liste erstmal leermachen  
        var anz = document.getElementById("Liste").childNodes.length;  
      
        for(var m = 0; m < anz; m++){  
            var Knoten = document.getElementsByTagName("ul")[m].firstChild;  
            document.getElementsByTagName("ul")[m].removeChild(Knoten);  
        }  
    }
    

    Ich mache das anders:

    function removeAllChildNodes(element) {  
        while (element.childNodes.length > 0) {  
            element.removeChild(element.lastChild);  
        }  
    }
    

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Lieber Felix,

      function removeAllChildNodes(element) {

      while (element.childNodes.length > 0) {
              element.removeChild(element.lastChild);
          }
      }

        
      Jetzt sei mal noch so gut und erklär einen alten Mann, was die Variable element beinhaltet ;-)  
        
      Viele Grüße,  
      Horst Haselhuhn
      
      1. Lieber Felix,

        function removeAllChildNodes(element) {

        while (element.childNodes.length > 0) {
                element.removeChild(element.lastChild);
            }
        }

          
        Cool, geht ab wie die Wutz aus Hohenlohe ;-)  
          
        
        > Jetzt sei mal noch so gut und erklär einen alten Mann, was die Variable element beinhaltet ;-)  
          
        Jaja, selber denken macht schlau:  
        removeAllChildNodes(document.getElementById("Liste"));  
          
        Herzlichen Dank nochemal!!  
          
          
        Viele Grüße,  
        Horst Haselhuhn
        
    2. Hallo Felix,

      warum nicht gleich so?

        
      function removeAllChildNodes(element) {  
        with(element) while(firstChild) removeChild(firstChild);  
      }
      

      Gruß Gernot

      1. Lieber Gernot,

        warum nicht gleich so?

        naja, das geht zwar auch, ist aber genau betrachtet kein echter Zweizeiler, sondern in Wirklichkeit (nach meiner Schreibweise) ein Vierzeiler. Und ich finde auch, dass mein Code für einen JS-Autor, der erst noch Erfahrung sammelt, leichter zu begreifen und anzupassen ist.

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Hallo Felix,

          eigentlich finde ich meinen Code ziemlich sprechend, wenn er auch für den Rechner nicht unbedingt so performant sein mag:

          Tu dem Element Folgendes an: Entferne sein erstes/nächstes Kind, solange es ein erstes/nächstes Kind hat.

          Oder auch: Herodes war ein Weichei dagegen! ;-)

          Gruß Gernot

          1. Lieber Gernot,

            Oder auch: Herodes war ein Weichei dagegen! ;-)

            also ehrlich?!

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
        2. Hallo Felix & Gernot,

          warum nicht gleich so?

          naja, das geht zwar auch, ist aber genau betrachtet kein echter Zweizeiler, sondern in Wirklichkeit (nach meiner Schreibweise) ein Vierzeiler. Und ich finde auch, dass mein Code für einen JS-Autor, der erst noch Erfahrung sammelt, leichter zu begreifen und anzupassen ist.

          Da haste voll Recht, Felix. JS, schreib ich tatsächlich nicht so oft und die Suchmaske auf mein Stichwortverzeichnis ist meine erste Ajax-Anwendung mit Content-type: text/xml (bisher text/html).

          Also, mit XML aus einer DB wieder HTML zu machen, das war schon ein Kick heute, gut dass es geregnet hat, so hatte ich den ganzen Tag Zeit ;-)

          Viele Grüße an Alle,
          Horst Haselhuhn