Markus: Element wird nur bei jeder 2. Aktion gelöscht, warum nur?!

Hallo Forum!

Ich hab folgendes Javascript:
.
.
.

  
function remakeList()  
 {  
 document.getElementById("sel1").removeChild(document.getElementById("sel1").firstChild);  
 }  

.
.
.

und folgenden html code

.
.
.

  
<select id="sel1" name="time" onChange="remakeList();">  
<option value="1">1</option>  
<option value="2">2</option>  
<option value="3">3</option>  
<option value="4">4</option>  
<option value="5">5</option>  
<option value="6">6</option>  
<option value="7">7</option>  
<option value="8">8</option>  
<option value="9">9</option>  
<option value="10">10</option>  
<option value="11">11</option>  
<option value="12">12</option>  
<option value="13">13</option>  
<option value="14" selected>14</option>  
<option value="15">15</option>  
</select>  

.
.
.
Fehler werden in der Javascript-Konsole vom Firefox nicht ausgegeben, jedoch wird nur jedes ZWEITE Mal wenn ich die Auswahl ändere das erste Element gelöscht. Beim Allerersten Mal NICHT, danach JA... usw.

Warum?

Gruß, Markus

  1. Hello,

    document.getElementById("sel1").removeChild(document.getElementById("sel1").firstChild);

    ich gebe mal den Standardtipp ab, der es zumindest bei Tabellen gerne trifft: Bist du sicher, dass das erste Kind von "sell" IMMER ein option ist? Du fragst, was es sonst sein könnte? Ein Textnode mit dem Freiraum zwischen select und option. Erklärt auch, warum es jedes zweite Mal klappt.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Konsens ist kein Beweis  --  John Naisbitt
    1. ich gebe mal den Standardtipp ab, der es zumindest bei Tabellen gerne trifft: Bist du sicher, dass das erste Kind von "sell" IMMER ein option ist? Du fragst, was es sonst sein könnte? Ein Textnode mit dem Freiraum zwischen select und option. Erklärt auch, warum es jedes zweite Mal klappt.

      JA, danke! Sowas hatte ich mir schon gedacht und es ist auch der Fall. Gibt es ne intelligente "bessere" Lösung das jeweils 1. Child zu löschen?

      mfG Markus

      1. Mh, dumm ausgedrückt! Das 1. Child lösche ich ja immer! :) Das jeweils 1. Element innerhalb von "sel1", triffts hoffentlich besser!

        1. Hallo Markus!

          Ok, hast es schon gemerkt :-)

          Das jeweils 1. Element innerhalb von "sel1", triffts hoffentlich besser!

          Stichwort: getElementsByTagName

          Gruß Uwe

          1. Okay... Danke Euch! :)

      2. Hallo Markus!

        Gibt es ne intelligente "bessere" Lösung das jeweils 1. Child zu löschen?

        Nö, dafür ist deine Lösung soweit schon ok.

        Es gibt übrigens eine einfache Formel, um die Anzahl der Kindknoten zu berechnen:

        tatsächlicheAnzahlKindknoten = vermuteteAnzahlKindknoten * 2 + 1

        Gruß Uwe

      3. Hallo Markus,

        ich nehme hier getElementsByTagname.

        Gruß, Jürgen

  2. Hallo Markus,

    Zeilenumbrüche zwischen Tags sind in einigen Browsern auch Knoten und damit Kinder.

    Gruß, Jürgen