Element.setAttributeNode()

setAttributeNode() 为指定的 Element 添加属性节点。

Syntax

var replacedAttr = element.setAttributeNode(attribute);
  • attribute 是添加到 element 中的属性节点.
  • replacedAttr 是被替换掉的属性节点。如果存在原有属性,则函数返回原有属性节点。

Example

// <div id="one" align="left">one</div>
// <div id="two">two</div>
var d1 = document.getElementById("one");
var d2 = document.getElementById("two");
var a = d1.getAttributeNode("align");
d2.setAttributeNode(a.cloneNode(true));
alert(d2.attributes[1].value)
// returns: `left'

Notes

如果 element 中已经存在该属性名的属性,则函数使用新的属性替换掉原有的属性并将原有属性返回

这个方法很少被用到,多数情况下使用函数 setAttribute() 修改 element 的属性。

DOM methods dealing with element's attributes:

Not namespace-aware, most commonly used methods Namespace-aware variants (DOM Level 2) DOM Level 1 methods for dealing with Attr nodes directly (seldom used) DOM Level 2 namespace-aware methods for dealing with Attr nodes directly (seldom used)
setAttribute (DOM 1) setAttributeNS setAttributeNode setAttributeNodeNS
getAttribute (DOM 1) getAttributeNS (en-US) getAttributeNode getAttributeNodeNS
hasAttribute (DOM 2) hasAttributeNS - -
removeAttribute (DOM 1) removeAttributeNS removeAttributeNode -

Specification