在DOM标准中,每个HTML元素都是继承自HTMLElement。这是DOM的继承关系树:
这里的Node,HTMLElement,HTMLAnchorElement其实就是HTML元素对象的类声明,我们可以通过修改这些类的原型来修改所有相关的HTML元素特性。
但是,HTMLElement和Node在IE中是虽然存在的,但是IE屏蔽了它,我们是无法访问到它的。
所有的Node实例有个标准属性 nodeType,有时它可以帮助我们判断一个NODE的属性
nodeType values chart 列表
Returned integer | Node type Constant |
---|---|
1 | ELEMENT_NODE |
2 | ATTRIBUTE_NODE |
3 | TEXT_NODE |
4 | CDATA_SECTION_NODE |
5 | ENTITY_REFERENCE_NODE |
6 | ENTITY_NODE |
7 | PROCESSING_INSTRUCTION_NODE |
8 | COMMENT_NODE |
9 | DOCUMENT_NODE |
10 | DOCUMENT_TYPE_NODE |
11 | DOCUMENT_FRAGMENT_NODE |
12` | NOTATION_NODE |
比如判断一个对象是否为 HTMLElement的实例:
Oobj instanceof HTMLElement; //这行代码在IE中会报错的 Oobj .nodeType == Node.ELEMENT_NODE; //这行代码在IE中会报错的 Oobj .nodeType == 1; //Node.ELEMENT_NODE=1 在IE中只能直接使用数字 //一段完整判断函数 function isElement(Oobj ){ return !!(Oobj && Oobj.nodeType == 1); }
参考:
DOM对象参考手册 http://www.navioo.com/DOMReference/HTML/reference/api/htmldom2.index.php
这个站关于JavaScript的参考资料很好,很强大 http://www.navioo.com