Daniela: Kann nicht auf "style"-Attribut zugreifen

Beitrag lesen

Hallo,

var image = document.createElement("div");
image.setAttributeNode(document.createAttribute("style"));

Ein style-Attribute brauchst du nicht erzeugen, das Objekt image.style existiert auch so und du kannst darüber die Eigenschaften setzen.

image.appendChild(document.createElement("img"));
image.firstChild.src = "flocke.png";
document.getElementsByTagName("body")[0].appendChild(image);

Du kannst auf das body-Element auch einfach über document.body zugreifen.

this.obj = document.getElementsByTagName("div")[num];
this.obj.style.position = "absolute";

bekomme ich die Fehlermeldung: "this.obj has no properties".

Das Problem ist nicht der Zugriff auf das style-Attribut.

Der Fehler liegt schon in der ersten Zeile, document.getElementsByTagName("div")[num] gibt wahrscheinlich null zurück. Schau dir erst einmal an, was document.getElementsByTagName("div") zurückgibt. Ein NodeList-Objekt, also eine Liste mit Knoten - wieviele Knoten sind darin? Die length-Eigenschaft gibt entsprechende Auskunft.

Tatsächlich -- beim zweiten Durchlauf kommt "undefined" zurück, beim ersten ist der Knotentyp 1, also Elementknoten. Die Anzahl der Knoten ist bei beiden Durchläufen 1. Und dabei dachte ich mir, dass schon beim ersten Durchlauf abgebrochen wird. Es ist auch nur ein "div"-Element da nach dem Abbruch, sollten aber zwei sein. Also funktioniert es beim ersten Mal noch.