Thomas Meinike: DOM und #$§§.all.innerHTML

Beitrag lesen

Hallo,

Frage: wie bekomme ich nach allgemeingültiger Syntax einen solchen DIV-Container komplett in den Speicher und kann ihn woanders "ausgießen"? Davon, daß im adressierten Layout-Bereich dann "[object]" steht, habe ich herzlich wenig.

Beispiel:

Im BODY liegen ein gefuelltes DIV und ein leerer Absatz:

<div id="block"><b>Text</b></div>
<p></p>

Nun wird eine Funktion aufgerufen, die folgendes macht:

var objekt, klone;
// DIV-Objekt anlegen
objekt=document.getElementById("block");
// Den ersten Knoten klonen
klone=objekt.childNodes.item(0).cloneNode(true);
// den Klone als Kindelement des Absatzes einhaengen
document.getElementsByTagName("p")[0].appendChild(klone);
// den geklonten Knoten entfernen
objekt.childNodes.item(0).removeNode(true);

Danach sieht es im BODY so aus:

<div id="block"></div>
<p><b>Text</b></p>

Im IE kann man sich durch
alert(document.documentElement.outerHTML)
vom Ergebnis ueberzeugen.

Letztlich muss man die gaengigen DOM-Methoden wie getElementById(), getElementsByTagName(), createElement(), appendChild(), removeChild(), replaceChild(), cloneNode(), insertBefore(), createAttribute(), setAttributeNode(), getAttribute(), setAttribute() usw. "geschickt" kombinieren.

MfG, Thomas