2012-04-05 3 views
4

Wenn ich dies schreibe:Wie kann ich ein Element schließen, das von document.createElement erstellt wurde?

document.createElement("img") 

Der erzeugte HTML ist: <img>, und ich kann auf diesem Element Attribute hinzufügen. Gibt es jedoch einen Parameter oder etwas, das ich createElement übergeben könnte, damit es sich selbst schließt? Oder gibt es eine Dom-Funktion, die ich aufrufen könnte, um das schließende Tag </a> zu erzeugen?

Antwort

8

Es spielt keine Rolle, ob Tags sich selbst abschließen oder nicht, wenn sie vom DOM verarbeitet wurden. Wenn Sie in der Quelle eingeben und dann innerHTML betrachten, sehen Sie stattdessen .

In ähnlicher Weise müssen Sie das schließende Tag nicht generieren, da es bereits vorhanden ist. Der Browser hat Ihr textbasiertes HTML bereits übernommen und in einen Knotenbaum verwandelt. Die Verwendung von DOM-Funktionen wirkt sich auf die Struktur aus, und wenn Sie innerHTML auswählen, wird nur eines von vielen möglichen Textformaten, die denselben Baum erzeugen.

+0

@Dave HTML5, wie ältere HTML-Versionen, hat immer noch keine selbstschließenden Tags. –

+0

Es tut mir leid, ich meine xhtml. Kann es selbst nahe
statt
Dave

+1

zu zeigen, weiß ich nicht, wenn ich ehrlich bin, aber ich würde annehmen, dass "innerHTML" HTML, nicht XHTML zurückgibt. Also keine selbstschließenden Tags. –

0

Die DOM-Struktur hat keine echten Vorstellungen von Tags als HTML-Markup. All diese Daten wurden deserialisiert und in eine Struktur umgewandelt.

1

Es passiert automatisch, wenn Sie das Element irgendwo anfügen.

So:

var newElem = document.createElement ("div"); 
newElem.innerHTML = "sample text"; 
newElem.style.color = "red"; 

var container = document.getElementById ("container"); 
container.appendChild (newElem); 
//the container contains a closing div tag 

die Geige Siehe: http://jsfiddle.net/jakHt/

0

Sobald Sie es an Körper (DOM) anhängen, Browser wird es automatisch geschlossen wird.

Verwandte Themen