Der Martin: Bilderwechsel

Beitrag lesen

Hi,

Du sprichst das Bild an, das du entfernen willst, und forderst es auf, eins seiner Kindelemente zu entfernen. Dabei hat es gar keine (kann auch keine haben). Überlege nochmal, *welches* Objekt du anweisen musst, sein Kind in die Wüste zu schicken.
Nicht das Bild. Das kann sich nicht selbst entsorgen.
hmm, also irgendwie steht mir einer auf der Leitung.

dann schubs ihn mal. ;-)

Das Image ist doch ein Kind element des Div (productimage) oder?
Also muss ich doch dann dem Div sein Kind Element entfernen?

Richtig!
Wir haben also folgendes, wenn ich dich richtig verstehe:

<div id="productimage">  
   <img ... />  
</div>

Dabei steht das img-Element nicht im ursprünglichen Quellcode, sondern wurde nachträglich dynamisch ins DOM eingefügt (spielt aber keine Rolle).

var Knoten = document.getElementById('productimage')[0].firstChild;

This is bogus. Wenn document.getElementById('productimage') das div-Element repräsentiert, was machst du dann mit dem Index? Die Referenz auf das div hat selbst keinen Array-Charakter. Streich das ersatzlos.
Mit der Eigenschaft firstChild greifst du dann -wie überraschend- auf den ersten Kindknoten zu. Das ist das Bild. - Wirklich? Es könnte auch ein Textknoten sein (Zeilenumbruch, Leerzeichen)! Sicherer ist es, das Bild innerhalb des div-Elements mit getElementsByTagName() zu suchen. Diese Methode liefert wieder sowas wie ein Array, von dem du das erste Element haben willst. DANN wäre auch der Index wieder sinnvoll.
Aber in jedem Fall musst du mit zwei Nodes jonglieren: Mit dem div-Element und dem Bild.

Ich kapiers nicht :-(

Doch, bestimmt. Mal schön langsam, Schritt für Schritt zum Mitdenken:

var theDiv   = document.getElementById("productimage");  // das div-Element, durch seine ID gefunden  
var theImage = theDiv.getElementsByTagName("img")[0];    // das Bild: erstes img-Element im div  
theDiv.removeChild(theImage);                            // und hau wech!

War doch gar nicht so kompliziert. Aber es hilft, wenn man versteht, was da genau passiert.

So long,
 Martin

--
Keine Sorge, wir finden für jede Lösung ein Problem.