Element:setAttributeNodeNS() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Element 介面的 setAttributeNodeNS() 方法將一個新的帶名稱空間(namespaced)的 Attr 節點新增到元素。

如果您在新增屬性節點之前不需要對其進行操作(例如從另一個元素克隆),則可以使用 setAttributeNS() 方法代替。

如果您正在處理 HTML 文件,並且不需要將請求的屬性指定為特定名稱空間的一部分,則可以使用 setAttribute() 方法代替。

語法

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); // returns: `utterleft'

注意

如果指定的屬性已存在於元素上,則該屬性將被新屬性替換,並返回被替換的屬性。

請注意,如果您嘗試在不克隆節點的情況下進行設定,可能會看到 NS_ERROR_DOM_INUSE_ATTRIBUTE_ERR “Attribute already in use”(屬性已在使用中)錯誤,因為 DOM 要求 Attr 節點被克隆才能重用(與其他可以移動的節點不同)。

規範

規範
DOM
# dom-element-setattributenodens

瀏覽器相容性

另見