元素:setAttributeNodeNS() 方法

setAttributeNodeNS()Element 接口的一个方法,用于向元素添加一个新的命名空间 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 "属性正在使用" 错误,因为 DOM 要求克隆 Attr 以便重复使用(与可以移动的其他节点不同)。

规范

规范
DOM 标准
# dom-element-setattributenodens

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅