`HTMLElement`和`Element`有什么区别?

时间:2011-07-05 11:08:55

标签: javascript

HTMLElementElement之间有什么区别?

document.createElement("div") instanceof Element给出了真实的

document.createElement("div") instanceof HTMLElement给出了真实的

HTMLElement === Element给出错误的

3 个答案:

答案 0 :(得分:28)

HTMLElement 中定义的Element interface HTMLElement : Element { attribute DOMString id; attribute DOMString title; attribute DOMString lang; attribute DOMString dir; attribute DOMString className; };

Element

Element(每个规范)引用Element接口,因为它在HTML extension to the DOM Level 2 Core specification中定义(但还有另一个DOM Core Level 2 specification(工作草案)。< / p>

更新:目前有很多规格,并不完全清楚哪些浏览器使用哪一个(对我而言)。

也许别人有更多的洞察力......

但无论如何,HTMLElement是一个比console.dir(elementReference)更通用的界面,后者继承自前者。

更新2:查看继承结构的一个好方法是为任何元素执行{{1}}(在Chrome / Safari中运行,需要Firebug for Firefox)。

答案 1 :(得分:16)

HTMLElement显式引用HTML元素,而Element可引用XML元素。但是,HTMLElement在技术上是Element的子集。

答案 2 :(得分:12)

HTMLElements从继承自Node的Element继承。

这意味着你的HTMLElement同时是一个'instanceof'这三个。事实上它是一个HTMLElement意味着它有一个接口,它只包含HTMLElement需要的方法,如attachEvent。