ChrisB: Array Elemente werden nicht ausgegeben HTML 4.01

Beitrag lesen

Hi,

  

> 				for (var i = 0; i < 10; i++) {  
> 					neuArray1[i] = "<div class='element1'></div>";  
> 					oberEbene.innerHTML += neuArray1[i];  

Hier überschreibst du innerHTML des Elements, das dein Div mit der id unterEbene enthält – und damit ist *enthielt* ab hier die passendere Zeitform.

Dadurch, dass du innerHTML überschreibst, werden alle vorhandenen Elemente ersetzt; selbst wenn du vermeintlich nur etwas hinzufügst – eine Zuweisung an innerHTML bewirkt immer, dass alle vorhandenen Kindelemente zerstört werden.

Du hast zwar anschließend eine *Kopie* des Divs unterEbene in deinem oberen Div – aber da es nicht mehr das selbe Element ist, verweist hier

  

> 					neuArray2[i] = "<div class='element2'></div>";  
> 					unterEbene.innerHTML += neuArray2[i];  

unterEbene nur auf ein Element, das es nicht mehr gibt.

Du müsstest dir hier erst mal die Referenz auf das – derzeitige – Element mit der id unterEbene neu holen, bevor du mit ihm arbeiten kannst.

Besser wäre es aber vermutlich, wenn du gar nicht erst innerHTML benutzen würdest, sondern die Elemente mit DOM-Methoden erzeugst und einhängst.

MfG ChrisB

--
Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/