Frage

Ich denke, das ist spezifisch für IE 6.0, aber ...

In JavaScript füge ich eine hinzu div zum DOM.Ich weise eine zu id Attribut.Als ich später versuche, das aufzuheben div bis zum id alles was ich bekomme ist null.

Irgendwelche Vorschläge?

Beispiel:

var newDiv = document.createElement("DIV");
newDiv.setAttribute("ID", "obj_1000");
document.appendChild(newDiv);

alert("Added:" + newDiv.getAttribute("ID") + ":" + newDiv.id + ":" + document.getElementById("obj_1000") );

Warndrucke "::null"

Scheint in Firefox 2.0+ gut zu funktionieren

War es hilfreich?

Lösung

Zusätzlich zu dem, was die anderen Antworten vorschlagen (dass Sie das Element tatsächlich in das DOM einfügen müssen, damit es gefunden werden kann). getElementById()), müssen Sie auch einen Attributnamen in Kleinbuchstaben verwenden, damit IE6 ihn als erkennt id:

var newDiv = document.createElement("DIV"); 
newDiv.setAttribute("id", "obj_1000");
document.body.appendChild(newDiv);

alert("Added:"
   + newDiv.getAttribute("id") 
   + ":" + newDiv.id + ":" 
   + document.getElementById("obj_1000") );

...antwortet wie erwartet:

Added:obj_1000:obj_1000:[object]

Entsprechend der MSDN-Dokumentation für setAttribute(), bis IE8 gibt es eine optionale Option dritter Parameter Dies steuert, ob beim Attributnamen die Groß-/Kleinschreibung beachtet wird oder nicht.Ratet mal, was die Standardeinstellung ist ...

Andere Tipps

Das div muss einem Element hinzugefügt werden, damit es Teil des Dokuments ist.

document.appendChild(newDiv);

alert( document.getElementById("obj_1000") );

Sie müssen das Div zum Dom hinzufügen.

// Create the Div
var oDiv = document.createElement('div');
document.body.appendChild(oDiv);

newDiv.setAttribute( "ID", "obj_1000" );

sollte sein

newDiv.id = "obj_1000";

Hmmm, vielen Dank, dass ihr mich auf den richtigen Weg gebracht habt, Leute ... das war seltsam, aber es stellt sich heraus, dass alles einwandfrei funktioniert, wenn ich die Groß- und Kleinschreibung in Kleinbuchstaben umändere ...

Fertiges Ergebnis:

var newDiv = document.createElement("DIV");
newDiv.setAttribute("id", "obj_1000");
document.appendChild(newDiv);

alert("Added:" +
      newDiv.getAttribute("id") + ":" +
      newDiv.id + ":" +
      document.getElementById("obj_1000"));

SELTSAM...SEHR SELTSAM

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top