2008-09-09 9 views
1

abholen Ich denke, diese zu IE ist spezifisch 6.0 aber ...Wie kann ich ein Div hinzufügen und später

In JavaScript ich div auf das DOM hinzufügen. Ich weise ein id Attribut zu. Wenn ich später versuche, die div von der 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")); 

Alarm druckt "::null"

scheint in Firefox 2.0+

Antwort

7

Zusätzlich zu dem, was die anderen Antworten vorschlagen (dass Sie das Element tatsächlich in das DOM einfügen müssen, damit es über getElementById() gefunden wird), müssen Sie auch einen Attributnamen in Kleinbuchstaben verwenden, damit IE6 erkennt es als 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")); 

... reagiert wie erwartet:

Added:obj_1000:obj_1000:[object] 

nach dem MSDN documentation für setAttribute(), bis IE8 gibt es einen optionalen dritten Parameter, der steuert, ob die Groß-/Kleinschreibung in Bezug auf den Attributnamen beachtet wird. Rate mal, was der Standard ist ...

1

Sie gut zu funktionieren haben die div zum dom hinzuzufügen.

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

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

document.appendChild(newDiv); 

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

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

sollte

newDiv.id = "obj_1000";

0

Hummm, danke, dass du mich auf den richtigen Weg gebracht hast, Jungs ... das war merkwürdig, aber es stellt sich heraus, dass alles gut funktioniert, wenn ich den Fall in Kleinbuchstaben umwandle. .

Finished 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")); 

oDD ... oDD SEHR

+1

Sehr merkwürdig? Nein, sehr IE. –