ChrisB: removeChild und anschließend insertBefore

Beitrag lesen

Hi,

Mein Ajax-Aufruf gibt mir als Textresource schon alles fertig zurücl
sprich:
<div id='Poll'>Ergebnisse der Umfrage</div>

Wenn du daraus einen Textknoten erzeugst, dann bekommst du aber auch einen Textknoten (und zwar einen, der als Textinhalt "<div id='Poll'>Ergebnisse der Umfrage</div>" enthält), und kein DIV-Element.

Und das sollte übrigens durchaus ”funktionieren”, auch wenn es nicht das von dir gewünschte ist. (Der genannte *Text* sollte ins Element eingefügt werden, wenn dein Code nicht noch an anderer Stelle fehlerhaft ist.)
In solchen Fällen schreib' das bitte künftig aber auch gleich von Anfang an so, wenn du dein Problem beschreibst - und nicht nur „funzt nich”.

Das Alte id='Poll' soll durch das neue ersetzt werden.

Dann musst du dir erst mal ein neues Element erzeugen.

Wenn du das vom AJAX-Request zurückgelieferte XML-Dokument betrachtest, dann hättest du dort schon einen Elementknoten. Und in Browsern, die document.importNode kennen, könntest du diesen auch in dein Hauptdokument importieren und dann irgendwo einhängen. Da das in älteren IE aber nicht der Fall ist, musst du dir dort was anderes überlegen. Meistens wird der simple Weg über innerHTML gegangen - damit kannst du aber nur komplette Element-Inhalte austauschen. Entweder packst du um <div id='Poll'> in deinem Hauptdokument also noch mal ein Element drum herum (und tauschst dann dessen innerHTML aus) - oder du lässt dir vom Server gleich nur das zurückliefern (in Textform), was <div id='Poll'> enthalten soll, und schreibst es dann in dessen innerHTML-Eigenschaft.

MfG ChrisB

--
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]