Javascirpt IE中的HTMLElement

在DOM标准中,每个HTML元素都是继承自HTMLElement。这是DOM的继承关系树:

200981518213488

这里的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

发表评论