Toggle navigation

HTML DOM Attribute 对象

HTML DOM 节点

在 HTML DOM (文档对象模型)中,每个部分都是节点:

  • 文档本身是文档节点
  • 所有 HTML 元素是元素节点
  • 所有 HTML 属性是属性节点
  • HTML 元素内的文本是文本节点
  • 注释是注释节点

Attr 对象

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

HTML 属性始终属于 HTML 元素。

NamedNodeMap 对象

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

NamedNodeMap 中的节点可通过名称或索引(数字)来访问。

浏览器支持

IEFirefoxChromeSafariOpera

所有浏览器都支持 Attr 对象和 NamedNodeMap 对象。

属性和方法

属性 / 方法描述
attr.isId如果属性是 id 类型,则返回 true,否则返回 false。
attr.name返回属性的名称。
attr.value设置或返回属性的值。
attr.specified如果已指定属性,则返回 true,否则返回 false。
nodemap.getNamedItem()从 NamedNodeMap 返回指定的属性节点。
nodemap.item()返回 NamedNodeMap 中位于指定下标的节点。
nodemap.length返回 NamedNodeMap 中的节点数。
nodemap.removeNamedItem()移除指定的属性节点。
nodemap.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 代替。