2014-04-18 9 views
7

Als ich versuchte, eine Instanz von DOM Htmlelement zu schaffen,Wie erstellt man eine Instanz der Konstruktorfunktionen von DOM?

var oElement = new HTMLElement(); 

Es wirft: Typeerror: Illegale Konstruktor

Warum können wir Konstruktorfunktionen DOM nicht instantitate? Gibt es einen Weg, es zu tun? Danke

+4

Sie können keine Instanz von HTML-Elementen in JS erstellen direkt als alle von ihnen unter Dokument-Objekt fällt. Unter Verwendung der Dokumentobjekteigenschaften können Sie jedoch ein HTML-Element erstellen. 'var element = document.createElement ('yourHTMLElement');' –

Antwort

6

Um ein neues Element mit Javascript zu erstellen, verwenden Sie die Methode createElement des Dokumentobjekts.

var newDiv = document.createElement("div"); 

Um neuen Text mit Javascript hinzuzufügen, können Sie die Methode createTextNode des Dokumentobjekts verwenden.

var text = document.createTextNode("Text goes here"); 
5

Die meisten DOM-Konstruktoren sollen keine Konstruktoren sein, sondern nur Halter für ihre Prototyp-Schnittstelle. Sie werden jedoch Factory-Funktionen haben, um sie zu konstruieren, die auch die Argumente validieren.

In Ihrem speziellen Fall benötigt ein HTMLElement a) einen Tagnamen und b) ein Dokument, mit dem der Knoten verknüpft werden soll. Die createElement Methode von document dauert beides.

6
Object.create(HTMLElement.prototype, {}) 
Verwandte Themen