Element wird nur bei jeder 2. Aktion gelöscht, warum nur?!
Markus
- javascript
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
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
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
Mh, dumm ausgedrückt! Das 1. Child lösche ich ja immer! :) Das jeweils 1. Element innerhalb von "sel1", triffts hoffentlich besser!
Hallo Markus!
Ok, hast es schon gemerkt :-)
Das jeweils 1. Element innerhalb von "sel1", triffts hoffentlich besser!
Stichwort: getElementsByTagName
Gruß Uwe
Okay... Danke Euch! :)
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
Hallo Markus,
ich nehme hier getElementsByTagname.
Gruß, Jürgen
Hallo Markus,
Zeilenumbrüche zwischen Tags sind in einigen Browsern auch Knoten und damit Kinder.
Gruß, Jürgen