html attribute
HTML DOM 节点的概念
HTML DOM(Document Object Model)文件对象模型中,所有的元素都是一个独立的节点:概念如下:
- 文件(document)本身是一个文书节点
- 所有的HTML元素称为元素节点
- 所有的HTML属性称为属性节点
- 文本文件里的HTML元素称为文本文件节点
- 注释称为注释节点
属性对象(Attr Object)
HTML DOM中,Attr Object代表了HTML属性。
HTML中的属性属于HTML元素。
NamedNodeMap对象
HTML DOM中,NamedNodeMap对象代表了元素属性节点的无序集合,使用序列号(index)能够访问NamedNodeMap对象。
不同浏览器的对应情况
| 对象 | |||||
| Attr | yes | yes | yes | yes | yes |
| NamedNodeMap | yes | yes | yes | yes | yes |
元素属性的属性及方法
- attr.isId如果属性为id型,返回true,否则返回false
- attr.name返回属性的名称
- attr.value设置或返回属性的值
- attr.specified如果是元素已经指定的属性,返回true,否则返回false
namedNodeMap对象相关的属性及方法
- nodemap.getNamedItem()从NamedNodeMap返回指定的属性节点
- nodemap.item()根据指定的索引号返回属性节点
- nodemap.length返回NamedNodeMap返中属性节点的数量
- nodemap.removeNamedItem()删除指定的属性节点
- nodemap.setNamedItem()给指定的元素添加属性节点
注意!!
HTML文档中应该回避使用的属性的属性及方法:
W3C DOM的核心里,属性对象从节点对象继承了很多属性及方法。DOM4中,属性对象(Attr object)不再从节点继承。
属性对象上应该避免使用的属性与方法
| 属性/方法 | 回避原因 | |
|---|---|---|
| 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.Type | 一直为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代替 | |

浙公网安备 33010602011771号