JavaScript 和 HTML DOM 参考手册 HTML DOM 属性对象

2024-02-25 开发教程 JavaScript 和 HTML DOM 参考手册 匿名 3

HTML DOM 节点

在 HTML DOM (Document Object Model) 中, 所有的都是 节点:

  • 文档是文档节点
  • 所有 HTML 元素是元素节点
  • 所有 HTML 属性都是属性节点
  • 插入到 HTML 元素中的文本为文本节点
  • 注释是注释节点

Attr 对象

在 HTML DOM 中, Attr 对象 代表一个 HTML 属性。

HTML属性总是属于HTML元素。


NamedNodeMap 对象

在 HTML DOM 中, the NamedNodeMap 对象 表示一个无顺序的节点列表。

我们可通过节点名称来访问 NamedNodeMap 中的节点。


浏览器支持

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


属性 / 方法描述
attr.isId 如果属性是 ID 类型,则 isId 属性返回 true,否则返回 false。
attr.name 返回属性名称
attr.value 设置或者返回属性值
attr.specified 如果属性被指定返回 true,否则返回 false
nodemap.getNamedItem() 从节点列表中返回的指定属性节点。
nodemap.item() 返回节点列表中处于指定索引号的节点。
nodemap.length 返回节点列表的节点数目。
nodemap.removeNamedItem() 删除指定属性节点
nodemap.setNamedItem() 设置指定属性节点(通过名称)

DOM 4 警告 !!!

在 W3C DOM 内核中, Attr (属性) 对象继承节点对象的所有属性和方法 。

在 DOM 4 中, Attr (属性) 对象不再从节点对象中继承。

从长远的代码质量来考虑,在属性对象中你需要避免使用节点对象属性和方法:

属性 / 方法避免原因
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 替代