HTMLElement
和Element
之间有什么区别?
document.createElement("div") instanceof Element
给出了真实的
document.createElement("div") instanceof HTMLElement
给出了真实的
HTMLElement === Element
给出错误的
答案 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。