DOM Interface

HTML

当用 JavaScript 去访问 HTML 中的元素的时候,实际访问到的是 DOM 元素。比如,访问 div 元素,实际拿到的是 HTMLDivElement;访问 span 元素,实际拿到的是 HTMLSpanElement

大多数情况下,不同的 HTML 元素有不同的 DOM interface 对应,因为不同的元素很可能有一些行为/属性上的不同。

但是也存在一些 HTML 元素,并没有特定的 DOM interface 对应,直接使用了 HTMLElement 这个基类。常见的例子有 ib 或者 ruby 等。

注:根据 MDN 的说明,Firefox 中 i 对应的 DOM 是 HTMLSpanElement。但实际测试下来,最新版本的 Firefox 实现和标准是一致的,使用的 DOM interface 是 HTMLElement 而不是 HTMLSpanElement

可以用下面的方法简单的查看具体使用的是哪一个 DOM interface:

// should be: HTMLElement
document.createElement('i').constructor.name;

// should be: HTMLSpanElement
document.createElement('span').constructor.name;