title | short-title | slug | l10n | ||
---|---|---|---|---|---|
Element: setAttributeNodeNS() メソッド |
setAttributeNodeNS() |
Web/API/Element/setAttributeNodeNS |
|
{{ APIRef("DOM") }}
setAttributeNodeNS
は、名前空間付きの新しい属性ノードを要素へ追加します。
setAttributeNodeNS(attributeNode)
attributeNode
はAttr
ノードです。
置換された属性ノードが、もしあれば、この関数から返されます。
// <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 を再利用するにあたって複製することを要求しているからです(他のノードが移動できるのとは異なります)。
{{Specifications}}
{{Compat}}
- {{domxref("Document.createAttribute()")}}
- {{domxref("Document.createAttributeNS()")}}