Dokument: createElement() Methode
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Die createElement() Methode des Document Interfaces erstellt ein neues HTMLElement, das den angegebenen localName hat.
Wenn localName nicht erkannt wird, erstellt die Methode ein HTMLUnknownElement.
Syntax
createElement(localName)
createElement(localName, options)
Parameter
localName-
Ein String, der den Typ des zu erstellenden Elements angibt. Verwenden Sie keine qualifizierten Namen (wie "html:a") mit dieser Methode. Bei einem Aufruf auf einem HTML-Dokument konvertiert
createElement()localNamein Kleinbuchstaben, bevor das Element erstellt wird. In Firefox, Opera und Chrome funktioniertcreateElement(null)wiecreateElement("null"). optionsOptional-
Ein Objekt mit den folgenden optionalen Eigenschaften (beachten Sie, dass nur eine von
isundcustomElementRegistryfestgelegt werden kann):isOptional-
Ein String, der den Tag-Namen für ein benutzerdefiniertes Element definiert, das zuvor mit
customElements.define()definiert wurde. Dem neuen Element wird einisAttribut zugewiesen, dessen Wert der Tag-Name des benutzerdefinierten Elements ist. Siehe Web-Komponent Beispiel für mehr Details. customElementRegistryOptional-
Ein
CustomElementRegistry, das das Scope-bezogene benutzerdefinierte Element-Registrierung eines benutzerdefinierten Elements festlegt.
Rückgabewert
Das neue Element.
Hinweis: Ein neues HTMLElement wird zurückgegeben, wenn das Dokument ein HTMLDocument ist, was der häufigste Fall ist. Andernfalls wird ein neues Element zurückgegeben.
Ausnahmen
InvalidCharacterErrorDOMException-
Wird ausgelöst, wenn der
localNameWert kein gültiger Elementname ist. Ein String ist ein gültiger Elementname, wenn seine Länge mindestens 1 beträgt und:- er mit einem alphabetischen Zeichen beginnt und kein ASCII-Leerzeichen,
NULL,/oder>(U+0000, U+002F, or U+003E, jeweils) enthält. - er mit
:(U+003A),_(U+005F) oder einem beliebigen Zeichen im Bereich von U+0080 bis U+10FFFF (einschließlich) beginnt und die verbleibenden Codepunkte nur dieselben Zeichen zusammen mit den ASCII-Alphanumerischen Zeichen,-(U+002D) und.(U+002E) enthalten.
Hinweis: Frühere Versionen der Spezifikation waren restriktiver und erforderten, dass der
localNameein gültiger XML-Name war. - er mit einem alphabetischen Zeichen beginnt und kein ASCII-Leerzeichen,
NotSupportedErrorDOMException-
Wird ausgelöst, wenn sowohl die Optionen
isals auchcustomElementRegistryangegeben sind.
Beispiele
>Einfaches Beispiel
Dies erstellt ein neues <div> und fügt es vor dem Element mit der ID div1 ein.
HTML
<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8" />
<title>Working with elements</title>
</head>
<body>
<div id="div1">The text above has been created dynamically.</div>
</body>
</html>
JavaScript
function addElement() {
// create a new div element
const newDiv = document.createElement("div");
// and give it some content
const newContent = document.createTextNode("Hi there and greetings!");
// add the text node to the newly created div
newDiv.appendChild(newContent);
// add the newly created element and its content into the DOM
const currentDiv = document.getElementById("div1");
document.body.insertBefore(newDiv, currentDiv);
}
addElement();
Ergebnis
Web-Komponent Beispiel
Hinweis:
Überprüfen Sie den Abschnitt Browser-Kompatibilität für Unterstützung und den Verweis auf das is Attribut für Vorbehalte zur Implementierung von benutzerdefinierten eingebauten Elementen.
Das folgende Beispiel-Snippet stammt von unserem expanding-list-web-component Beispiel (siehe es auch live). In diesem Fall erweitert unser benutzerdefiniertes Element das HTMLUListElement, das das <ul> Element darstellt.
// Create a class for the element
class ExpandingList extends HTMLUListElement {
constructor() {
// Always call super first in constructor
super();
// constructor definition left out for brevity
// …
}
}
// Define the new element
customElements.define("expanding-list", ExpandingList, { extends: "ul" });
Wenn wir eine Instanz dieses Elements programmgesteuert erstellen möchten, würden wir einen Aufruf in der folgenden Art und Weise verwenden:
let expandingList = document.createElement("ul", { is: "expanding-list" });
Dem neuen Element wird ein is Attribut zugewiesen, dessen Wert der Tag-Name des benutzerdefinierten Elements ist.
Hinweis: Aus Gründen der Abwärtskompatibilität erlauben einige Browser hier die Übergabe eines Strings anstelle eines Objekts, wobei der Wert des Strings der Tag-Name des benutzerdefinierten Elements ist.
Spezifikationen
| Spezifikation |
|---|
| DOM> # ref-for-dom-document-createelement①> |
Browser-Kompatibilität
Siehe auch
Node.removeChild()Node.replaceChild()Node.appendChild()Node.insertBefore()Node.hasChildNodes()document.createElementNS()— um die Namespace-URI für das Element explizit anzugeben.