HTML DOM 属性对象
HTML DOM (Document Object Model) 中, 所有的都是 节点
- 文档是文档节点
- 所有 HTML 元素是元素节点
- 所有 HTML 属性都是属性节点
- 插入到 HTML 元素中的文本为文本节点
- 注释是注释节点
Attr 对象
HTML DOM 中, Attr 对象 代表一个 HTML 属性
HTML 属性总是属于 HTML 元素
NamedNodeMap 对象
HTML DOM 中, 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 替代 |