Dokument: createAttributeNS() 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.
Die createAttributeNS() Methode des Document Interfaces erstellt ein neues Attributknoten mit dem angegebenen Namespace-URI und dem qualifizierten Namen.
Das erstellte Objekt ist ein Knoten, der das Attr Interface implementiert. Das DOM erzwingt nicht, welche Art von Attributen auf diese Weise zu einem bestimmten Element hinzugefügt werden können.
Syntax
createAttributeNS(namespaceURI, qualifiedName)
Parameter
namespaceURI-
Ein String, der die
namespaceURIangibt, die mit dem Attribut verknüpft werden soll, oder der leere String. In HTML-Dokumenten befinden sich die meisten Attribute im Null-Namespace – verwenden Sie hierfür den leeren String. Verwenden Sie einen spezifischen Namespace-URI nur, wenn Sie ein namespaced Attribut erstellen, wie etwaxml:langoderxml:space. Einige Namespace-URIs sind:- XML:
http://www.w3.org/XML/1998/namespace(fürxml:lang,xml:space) - XMLNS:
http://www.w3.org/2000/xmlns/(fürxmlns,xmlns:*) - XLink:
http://www.w3.org/1999/xlink(fürxlink:href,xlink:title, etc.)
- XML:
qualifiedName-
Ein String, der den qualifizierten Namen des neuen Attributs enthält. Die
nameEigenschaft des erstellten Attributs wird mit diesem Wert initialisiert.Das Format des qualifizierten Namens ist
prefix:localNameoderlocalName, wobei die Teile wie folgt definiert sind:prefixOptional-
Ein "kurzer Alias" für den Namespace. Das Präfix ist optional, aber wenn es angegeben wird, muss auch der
namespaceURIParameter angegeben werden. Wenn das Präfix aufxmloderxmlnsgesetzt ist, mussnamespaceURIaufhttp://www.w3.org/XML/1998/namespacebzw.http://www.w3.org/2000/xmlns/gesetzt werden.Der Wert wird verwendet, um die
prefixEigenschaft des neuen Attributs zu initialisieren. Standardmäßignull. localName-
Der lokale Name des Attributs. Der Wert wird verwendet, um die
localNameEigenschaft des neuen Attributs zu initialisieren.
Rückgabewert
Der neue Attr Knoten.
Ausnahmen
NamespaceErrorDOMException-
Ausgelöst, wenn der
namespaceURIWert:- kein gültiger Namespace-URI ist.
- auf den leeren String gesetzt ist, wenn
prefixeinen Wert hat. - nicht der Wert
http://www.w3.org/XML/1998/namespaceoderhttp://www.w3.org/2000/xmlns/ist, wennprefixaufxmloderxmlnsgesetzt ist.
InvalidCharacterErrorDOMException-
Ausgelöst, wenn entweder das
prefixoderlocalNamenicht gültig ist:- Das
prefixmuss mindestens ein Zeichen haben und darf kein ASCII-Leerzeichen,NULL,/oder>(U+0000, U+002F oder U+003E, jeweils) enthalten. - Das
localNamemuss mindestens ein Zeichen haben und darf kein ASCII-Leerzeichen,NULL,/,=oder>(U+0000, U+002F, U+003D oder U+003E, jeweils) enthalten.
Hinweis: Früherer Versionen der Spezifikation waren restriktiver und erforderten, dass das
localNameein gültiger XML-Name ist. - Das
Beispiele
>Erstellen eines namespaced Attributs
Dieses Beispiel erstellt ein xml:lang Attribut mit dem XML-Namespace und fügt es einem Absatz-Element hinzu. Dieses Attribut gibt die Sprache des Inhalts des Elements für die XML-Verarbeitung an.
<p id="greeting">Bonjour!</p>
const el = document.getElementById("greeting");
const attr = document.createAttributeNS(
"http://www.w3.org/XML/1998/namespace",
"xml:lang",
);
attr.value = "fr";
el.setAttributeNode(attr);
Erstellen eines unpräfixierten Attributs
In HTML-Dokumenten befinden sich unpräfixierte Attribute (wie SVG-Präsentationsattribute wie viewBox) im Null-Namespace. Verwenden Sie den leeren String für den namespaceURI Parameter, um dies zu erreichen.
<svg id="svg"></svg>
const svg = document.getElementById("svg");
const attr = document.createAttributeNS("", "viewBox");
attr.value = "0 0 100 100";
svg.setAttributeNode(attr);
console.log(svg.getAttribute("viewBox")); // "0 0 100 100"
Beachten Sie, dass Sie in den meisten Fällen Element.setAttribute() anstelle von createAttributeNS() für unpräfixierte Attribute verwenden können:
svg.setAttribute("viewBox", "0 0 100 100");
Spezifikationen
| Spezifikation |
|---|
| DOM> # dom-document-createattributens> |