wahsaga: node.insertBefore - Fehler "Node was not found"

Beitrag lesen

Hi,

ich bin gerade irgendwie zu blöd, mit insertBefore() zu arbeiten.

Folgendes Formular in einer validen XHTML 1.0 strict Seite:

<form action="#" method="get" id="form1"><p>  
<select id="selectBox" name="selectBox">  
<!--mehrere options ...-->  
</select>  
</p></form>

Darauf angewandt wird folgender Javascript-Code:

selectBox = document.getElementById("selectBox");  
comboBox = document.createElement("input");  
comboBox.type = "text";  
comboBox.id = "comboBox";  
form1 = document.getElementById("form1");  
form1.insertBefore(  
  comboBox,  
  form1  
);

Die Javascript-Konsole des Firefox meldet folgenden Fehler:

Fehler: uncaught exception: [Exception... "Node was not found"  code: "8" nsresult: "0x80530008 (NS_ERROR_DOM_NOT_FOUND_ERR)"  location: "http://localhost/test/combobox_js.htm Line: xy"]

wobei Line: xy die Zeile ist, in der der zweite Parameter von insertbefore() steht, form1.

Das vorausgehende
form1 = document.getElementById("form1");
klappt noch problemlos, alert(form1) liefert "[object HTMLFormElement]".

Opera mag ebenfalls nicht, bringt aber nur ein noch weniger aussagekräftiges "Unhandled exception: [Object DOMException]" ohne eine Zeilenangabe.

Kann mir mal jemand erklären, wieso da bitte der Node form1 nicht gefunden wird?
Selbstverständlich wird das JS erst ausgeführt, nachdem die Seite geladen und gerendert wurde (alert von form1 klappt ja wie gesagt auch).

Ach ja, und den erzeugten Node comboBox stattdessen mittels form1.appendChild() nach hinten ins Formular einzufügen, klappt ebenfalls problemlos.

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }