Element: Methode getAttributeNS()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die getAttributeNS()
-Methode des Element
-Interfaces gibt den Zeichenfolgenwert des Attributs mit dem angegebenen Namensraum und Namen zurück. Wenn das benannte Attribut nicht existiert, wird entweder null
oder ""
(die leere Zeichenkette) zurückgegeben; siehe Hinweise für Details.
Wenn Sie mit HTML-Dokumenten arbeiten und das angeforderte Attribut nicht als Teil eines bestimmten Namensraums spezifizieren müssen, verwenden Sie stattdessen die Methode getAttribute()
.
Syntax
getAttributeNS(namespace, name)
Parameter
Rückgabewert
Der Zeichenfolgenwert des angegebenen Attributs. Wenn das Attribut nicht existiert, ist das Ergebnis null
.
Hinweis: Frühere Versionen der DOM-Spezifikation beschrieben diese Methode als eine leere Zeichenkette für nicht existierende Attribute zurückzugeben, was jedoch normalerweise nicht so implementiert wurde, da null
sinnvoller ist. Die DOM4-Spezifikation legt jetzt fest, dass diese Methode null
für nicht existierende Attribute zurückgeben sollte.
Beispiele
Das folgende SVG-Dokument liest den Wert des foo
-Attributs in einem benutzerdefinierten Namensraum aus.
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:test="http://www.example.com/2014/test" width="40" height="40">
<circle id="target" cx="12" cy="12" r="10" stroke="#444"
stroke-width="2" fill="none" test:foo="Hello namespaced attribute!"/>
<script>
const ns = 'http://www.example.com/2014/test';
const circle = document.getElementById('target');
console.log(`attribute test:foo: "${circle.getAttributeNS(ns, 'foo')}"`);
</script>
</svg>
In einem HTML-Dokument muss auf das Attribut mit test:foo
zugegriffen werden, da Namensräume nicht unterstützt werden.
<!doctype html>
<html lang="en-US">
<head>
<meta charset="UTF-8" />
<title>getAttributeNS() test page</title>
</head>
<body>
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:test="http://www.example.com/2014/test"
width="40"
height="40">
<circle
id="target"
cx="12"
cy="12"
r="10"
stroke="#444"
stroke-width="2"
fill="none"
test:foo="Foo value" />
</svg>
<script>
const ns = "http://www.example.com/2014/test";
const circle = document.getElementById("target");
console.log(`Attribute value: ${circle.getAttribute("test:foo")}`);
</script>
</body>
</html>
Hinweise
getAttributeNS()
unterscheidet sich von getAttribute()
, indem es Ihnen ermöglicht, das angeforderte Attribut weiter als Teil eines bestimmten Namensraums zu spezifizieren, wie im obigen Beispiel, wo das Attribut Teil des fiktiven "test"-Namensraums ist.
Vor der DOM4-Spezifikation war diese Methode so definiert, dass sie eine leere Zeichenkette anstelle von null
für nicht existierende Attribute zurückgeben sollte. Die meisten Browser gaben jedoch stattdessen null
zurück. Ab DOM4 gibt die Spezifikation nun an, null
zurückzugeben. Einige ältere Browser geben jedoch eine leere Zeichenkette zurück. Aus diesem Grund sollten Sie hasAttributeNS()
verwenden, um die Existenz eines Attributs zu überprüfen, bevor Sie getAttributeNS()
aufrufen, falls das angeforderte Attribut möglicherweise nicht auf dem angegebenen Element existiert.
Spezifikationen
Specification |
---|
DOM Standard # ref-for-dom-element-getattributens① |
Browser-Kompatibilität
BCD tables only load in the browser