--- title: Document.createElement() slug: Web/API/Document/createElement tags: - API - DOM - Document - Method - Méthode translation_of: Web/API/Document/createElement ---
In einem HTML Dokument erstellt die Document.createElement() Methode ein spezifiziertes HTML Element oder ein {{domxref("HTMLUnknownElement")}} wenn der gegebene Elementname ein unbekannter ist.
var element = document.createElement(tagName, [optionen]);
tagNametagName initialisiert. Benutze keine qualifizierten Namen (wie "html:a") mit dieser Methode.optionen {{optional_inline}}ElementCreationOptions-Objekt, welches eine einzige Eigenschaft namens is besitzt, deren Wert der Name des Tags für ein benutzerdefiniertes Element ist. Dieses benutzerdefinierte Element muss vorher mit customElements.define() definiert werden. Für mehr Informationen siehe {{anch("Web component example")}}.Das neue Element.
Dies erstellt ein neues <div> und fügt es vor dem Element mit der ID div1 ein.
<!DOCTYPE html> <html> <head> <title>||Arbeiten mit Elementen||</title> </head> <body> <div id="div1">Der obere Text wurde dynamisch erstellt.</div> </body> </html>
document.body.onload = addElement;
function addElement () {
// erstelle ein neues div Element
// und gib ihm etwas Inhalt
var newDiv = document.createElement("div");
var newContent = document.createTextNode("Hi there and greetings!");
newDiv.appendChild(newContent); // füge den Textknoten zum neu erstellten div hinzu.
// füge das neu erstellte Element und seinen Inhalt ins DOM ein
var currentDiv = document.getElementById("div1");
document.body.insertBefore(newDiv, currentDiv);
}
{{EmbedLiveSample("Basic_example", 500, 50)}}
Das folgende Beispiel wurde aus dem Beispiel expanding-list-web-component entnommen (Siehe es live). In diesem Fall erweitert unser Custom-Element die {{domxref("HTMLUListElement")}}, welche das {{htmlelement("ul")}} Element repräsentiert.
// Erstelle eine Klasse für das Element
class ExpandingList extends HTMLUListElement {
constructor() {
// Rufe immer super() in einem Konstruktor auf.
super();
// Konstruktordefinition wurde der kürze halber weggelassen
...
}
}
// Definiere das neue Element
customElements.define('expanding-list', ExpandingList, { extends: "ul" });
Würden wir eine Instanz dieses Elements programmatisch erstellen wollen, so würden wir einen Aufruf über den folgenden Ausschnitt machen:
let expandingList = document.createElement('ul', { is : 'expanding-list' })
Dem neuen Element wird ein is Attribut hinzugefügt, dessen Wert das Custom-Element's Tag-Name ist.
Notiz: Für Backwards-Kompatiblität mit früheren Versionen der Spezifikationen des Custom-Elements, erlauben einige Browser einen String, statt einem Objekt, als Parameter zu übergeben, wobei der Wert des Strings der Tag-Name des Custom-Elements ist.
createElement() seine Argumente in Kleinbuchstaben, bevor es das diese erstellt.tagName im Quirks-Modus setzen; seit Gecko 2.0 verhält sich die Funktion im Quirks-Modus und im Standard-Modus gleich.createElement(null) hat das gleiche bewirkt wie createElement("null"). Bemerke, dass Opera funktioniert mit null ebenfalls, während Chrome und Internet Explorer beide Fehler ausgeben würden.createElement() nicht mehr die {{domxref("HTMLSpanElement")}} Schnittstelle, wenn das Argument "bgsounds", "multicol", oder "image" ist. Stattdessen wird HTMLUnknownElement für"bgsound" und "multicol" verwendet, und {{domxref("HTMLElement")}} HTMLElement wird für "image" verwendet.createElement ist nicht konform mit der DOM Spezifikation für XUL und XHTML Dokumente: localName und namespaceURI werden beim erstellten Element nicht auf null gesetzt.. Siehe auch {{ Bug(280692) }} für weitere Details.| Spezifikation | Status | Kommentar |
|---|---|---|
| {{SpecName('DOM WHATWG', "#dom-document-createelement", "Document.createElement")}} | {{Spec2('DOM WHATWG')}} |
{{Compat("api.Document.createElement")}}