Element: setAttributeNodeNS() メソッド
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.
setAttributeNodeNS
は、名前空間付きの新しい属性ノードを要素へ追加します。
構文
js
setAttributeNodeNS(attributeNode)
引数
attributeNode
はAttr
ノードです。
返値
置換された属性ノードが、もしあれば、この関数から返されます。
例
js
// <div id="one" xmlns:myNS="http://www.mozilla.org/ns/specialspace"
// myNS:special-align="utterleft">one</div>
// <div id="two">two</div>
const myns = "http://www.mozilla.org/ns/specialspace";
const d1 = document.getElementById("one");
const d2 = document.getElementById("two");
const a = d1.getAttributeNodeNS(myns, "special-align");
d2.setAttributeNodeNS(a.cloneNode(true));
alert(d2.attributes[1].value); // 返値: `utterleft'
メモ
指定された属性が既に要素に存在する場合、その属性は新しい属性に置き換えられ、置き換えられた属性が返されます。
なお、ノードを複製せずに設定しようとすると、Mozilla は NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR "Attribute already in use" エラーを出します。DOM は Attr を再利用するにあたって複製することを要求しているからです(他のノードが移動できるのとは異なります)。
仕様書
Specification |
---|
DOM Standard # dom-element-setattributenodens |
ブラウザーの互換性
BCD tables only load in the browser