Dokument: createElementNS() 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 createElementNS() Methode des Document Interfaces erstellt ein neues Element mit dem angegebenen Namensraum-URI und qualifiziertem Namen.
Dies ist nützlich in Dokumenten mit gemischten Namensräumen, wie SVG oder MathML eingebettet in HTML, wo der Parser den Namensraum nicht zuverlässig ableiten kann.
Die createElement() Methode ist einfacher, wenn Sie ein einfaches HTML-Element erstellen möchten.
Syntax
createElementNS(namespaceURI, qualifiedName)
createElementNS(namespaceURI, qualifiedName, options)
Parameter
namespaceURI-
Ein String, der den
namespaceURIangibt, der mit dem Element verknüpft werden soll. Einige wichtige Namensraum-URIs sind: qualifiedName-
Ein String, der den qualifizierten Namen des neuen Elements enthält. Die
nodeNameEigenschaft des erstellten Elements wird mit diesem Wert initialisiert.Das Format des qualifizierten Namens ist
prefix:localNameoderlocalName, wobei die Teile wie folgt definiert sind:prefixOptional-
Ein "kurzes Alias" für den Namensraum. Der Präfix ist optional, aber wenn er angegeben wird, muss auch der
namespaceURIParameter angegeben werden. Wenn der Präfix aufxmloderxmlnsgesetzt ist, muss dernamespaceURIaufhttp://www.w3.org/XML/1998/namespaceoderhttp://www.w3.org/2000/xmlns/, bzw. gesetzt sein.Der Wert wird verwendet, um die
prefixEigenschaft des neuen Elements zu initialisieren. Standardwert istnull. localName-
Der lokale Name des Elements. Der Wert wird verwendet, um die
localNameEigenschaft des neuen Elements zu initialisieren.
optionsOptional-
Ein Objekt mit den folgenden optionalen Eigenschaften (beachten Sie, dass nur eine von
isundcustomElementRegistrygesetzt werden kann):isOptional-
Ein String, der den Tag-Namen für ein zuvor mit
customElements.define()definiertes benutzerdefiniertes Element definiert. Das neue Element erhält einisAttribut, dessen Wert der Tag-Name des benutzerdefinierten Elements ist. customElementRegistryOptional-
Ein
CustomElementRegistry, der das Abgegrenzte benutzerdefinierte Element-Registrierungsdokument eines benutzerdefinierten Elements setzt.
Aus Gründen der Abwärtskompatibilität erlauben es einige Browser, hier einen String anstelle eines Objekts zu übergeben, wobei der Wert des Strings der Tag-Name des benutzerdefinierten Elements ist. Siehe Erweitern nativer HTML-Elemente für weitere Informationen zur Verwendung dieses Parameters.
Rückgabewert
Das neue Element.
Ausnahmen
NamespaceErrorDOMException-
Wird ausgelöst, wenn der Wert von
namespaceURIist:- kein gültiger Namensraum-URI.
- auf den leeren String gesetzt, wenn
prefixeinen Wert hat. - nicht der Wert
http://www.w3.org/XML/1998/namespaceoderhttp://www.w3.org/2000/xmlns/, wennprefixaufxmloderxmlnsgesetzt ist, bzw.
InvalidCharacterErrorDOMException-
Wird ausgelöst, wenn entweder der
prefixoderlocalNamenicht gültig ist:- Der
prefixmuss mindestens ein Zeichen haben und darf kein ASCII-Leerzeichen,NULL,/oder>(U+0000, U+002F oder U+003E, entsprechend) enthalten. - Der
localNameist ein gültiger Elementname, wenn er eine Mindestlänge von 1 hat und:- er mit einem Alphabet-Zeichen beginnt und kein ASCII-Leerzeichen,
NULL,/, oder>(U+0000, U+002F oder U+003E, entsprechend) enthält. - er beginnt mit
:(U+003A),_(U+005F) oder einem der Zeichen im Bereich U+0080 bis U+10FFFF (einschließlich) und die verbleibenden Codepunkte nur diese selben Zeichen zusammen mit den ASCII-alphanumerischen Zeichen,-(U+002D), und.(U+002E) enthalten,
- er mit einem Alphabet-Zeichen beginnt und kein ASCII-Leerzeichen,
Hinweis: Frühere Versionen der Spezifikation waren restriktiver und forderten, dass der
qualifiedNameein gültiger XML-Name ist. - Der
NotSupportedErrorDOMException-
Wird ausgelöst, wenn sowohl die
isals auch diecustomElementRegistryOptionen angegeben sind.
Beispiele
>Grundlegende Nutzung
Dies zeigt, wie Sie ein neues <div> Element im XHTML-Namensraum erstellen.
const divElementXHTML = document.createElementNS(
"http://www.w3.org/1999/xhtml",
"div",
);
// This is equivalent!
const divElementHTML = document.createElement("div");
Erstellen eines SVG-Elements
Dieses Beispiel zeigt, wie Sie ein SVG-Element (SVGSVGElement) erstellen und es dem HTML <body> Element anhängen können.
Die Verwendung von createElementNS() mit dem SVG-Namensraum ist notwendig, wenn mit einem HTML-Dokument gearbeitet wird.
Wenn Sie createElement("svg") aufrufen würden, würde ein HTMLUnknownElement zurückgegeben, und das SVG würde nicht gerendert werden.
const svgNS = "http://www.w3.org/2000/svg";
const svg = document.createElementNS(svgNS, "svg");
svg.setAttribute("width", "100");
svg.setAttribute("height", "100");
const circle = document.createElementNS(svgNS, "circle");
circle.setAttribute("cx", "50");
circle.setAttribute("cy", "50");
circle.setAttribute("r", "40");
circle.setAttribute("fill", "steelblue");
svg.appendChild(circle);
document.body.appendChild(svg);
Spezifikationen
| Spezifikation |
|---|
| DOM> # ref-for-dom-document-createelementns①> |