HTML DOM Attr 对象

Attr 对象

在 HTML DOM 中,Attr 对象表示 HTML 属性

HTML 属性始终属于 HTML 元素

NamedNodeMap

在 HTML DOM 中,NamedNodeMap 对象表示元素属性节点的无序集合。

换句话说:NamedNodeMap 是 Attr 对象的列表。

NamedNodeMap 拥有返回节点数的 length 属性

可以通过名称或索引号访问节点。索引从 0 开始。

Attribute 属性

属性 描述
isId 已被弃用。
name 返回属性的名称。
value 设置或返回属性的值。
specified 如果已指定属性,则返回 true,否则返回 false。

NamedNodeMap 属性和方法

方法 描述
getNamedItem() 从 NamedNodeMap 返回属性节点(按名称)。
item() 从 NamedNodeMap 返回属性节点(按索引)。
length 返回 NamedNodeMap 中的属性数。
removeNamedItem() 删除属性(节点)。
setNamedItem() 按名称设置属性(节点)。

DOM 4 警告!

在 W3C DOM Core 中,Attr (attribute) 对象从 Node 对象继承所有属性和方法。

在 DOM 4 中,Attr 对象不再从 Node 继承。

为了保证未来的代码安全,您应该避免在属性对象上使用节点对象的属性和方法:

属性 / 方法 避免的理由
attr.appendChild() 属性没有子节点。
attr.attributes 属性没有属性。
attr.baseURI 使用 document.baseURI 代替。
attr.childNodes 属性没有子节点。
attr.cloneNode() 使用 attr.value 代替。
attr.firstChild 属性没有子节点。
attr.hasAttributes() 属性没有属性。
attr.hasChildNodes 属性没有子节点。
attr.insertBefore() 属性没有子节点。
attr.isEqualNode() 没有意义。
attr.isSameNode() 没有意义。
attr.isSupported() 始终为 true。
attr.lastChild 属性没有子节点。
attr.nextSibling 属性没有同级节点。
attr.nodeName 使用 attr.name 代替。
attr.nodeType 始终为 2 (ATTRIBUTE_NODE)。
attr.nodeValue 使用 attr.value 代替。
attr.normalize() 属性无法被正常化。
attr.ownerDocument 始终是您的 HTML 文档。
attr.ownerElement 这是您用来访问该属性的 HTML 元素。
attr.parentNode 这是您用来访问该属性的 HTML 元素。
attr.previousSibling 属性没有同级节点。
attr.removeChild 属性没有子节点。
attr.replaceChild 属性没有子节点。
attr.textContent 使用 attr.value 代替。