HTML DOM Attribute 对象
HTML DOM 节点
在 HTML DOM (文档对象模型)中,每个部分都是节点:
- 文档本身是文档节点
- 所有 HTML 元素是元素节点
- 所有 HTML 属性是属性节点
- HTML 元素内的文本是文本节点
- 注释是注释节点
Attr 对象
在 HTML DOM 中,Attr 对象表示 HTML 属性。
HTML 属性始终属于 HTML 元素。
NamedNodeMap 对象
在 HTML DOM 中,NamedNodeMap 对象表示元素属性节点的无序集合。
NamedNodeMap 中的节点可通过名称或索引(数字)来访问。
浏览器支持
IE | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|
所有浏览器都支持 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 代替。 |