Element - Document 中所有对象最通用的基类
Element
是 Document
中所有对象继承的最通用的基类。它只有各种元素共有的方法和属性。更具体的类继承自 Element
。例如,HTMLElement
接口是所有 HTML 元素的基础接口,而 SVGElement
接口是所有 SVG 元素的基础接口。大多数功能都是在类层次结构下面进一步指定的。
Web 平台领域以外的语言,如 XUL 通过 XULElement
接口也实现了 Element
接口。
继承关系图
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 1.0 | 支持 | 1.0 | 支持 | 支持 | 1.0 |
children |
支持 | 支持 | 3.0 | 7.0 有一个重大的 bug [1] 9.0 根据规范实现了 |
支持 | 不支持 |
childElementCount , nextElementSibling , previousElementSibling
|
支持 | 支持 | 3.5 | 9.0 | 支持 | 支持 |
firstElementChild , lastElementChild
|
支持 | 支持 | 3.0 | 9.0 | 支持 | 支持 |
classList |
支持 | 支持 | 3.6 | 支持 | 支持 | |
outerHTML
|
支持 | 支持 | 11 | 支持 | 支持 | 支持 |
clientLeft , clientTop
|
支持 | 支持 | 3.5 | 支持 | 支持 | 支持 |
getBoundingClientRect() , getClientRects()
|
支持 | 支持 | 3.0 | 支持 | 支持 | 支持 |
querySelector() , querySelectorAll()
|
1.0 | 支持 | 3.5 | 8.0 | 10.0 | 3.2 (525.3) |
insertAdjacentHTML()
|
1.0 | 支持 | 8 | 4.0 | 7.0 | 4.0 (527) |
setCapture()
|
不支持 | 不支持 | 4.0 | 不支持 | 不支持 | 不支持 |
oncopy , oncut , onpaste
|
不支持 | 不支持 | 3.0 | 支持 | 不支持 | |
onwheel
|
不支持 | 支持 | 17 | 不支持 | 不支持 | 不支持 |
ongotpointercapture , onlostpointercapture , setPointerCapture() , and releasePointerCapture()
|
52.0 [4] | 支持 | 支持 [3] | 10.0 | 不支持 | 不支持 |
matches()
|
支持 with the non-standard name webkitMatchesSelector
|
支持 webkit ms | 3.6 with the non-standard name mozMatchesSelector 34 with the standard name |
9.0 with the non-standard name msMatchesSelector
|
11.5 with the non-standard name oMatchesSelector 15.0 with the non-standard name webkitMatchesSelector
|
5.0 with the non-standard name webkitMatchesSelector
|
requestPointerLock() |
16.0 webkit, behind an about:flags 22.0 webkit (with special cases, progressively lifted see [2]) |
支持 | 14moz | 不支持 | 不支持 | 不支持 |
requestFullscreen() |
14.0 webkit | 支持 | 10 moz | 11.0 ms | 12.10 15.0 webkit |
5.1 webkit |
undoManager and undoScope
|
不支持 | 不支持 |
支持 (behind the dom.undo_manager.enabled pref) |
不支持 | 不支持 | 不支持 |
attributes |
未知 | 不支持 | 22 Before this it was available via the Node interface that any element inherits. |
未知 | 未知 | 未知 |
scrollTopMax() and scrollLeftMax()
|
不支持 | 不支持 | 16 | 不支持 | 不支持 | 不支持 |
closest() |
未知 | 支持 | 35 | 未知 | 未知 | 未知 |
hasAttributes() |
支持 | 不支持 | 1.0 (on the Node interface) 35 (on this interface |
支持 | 支持 | 支持 |
insertAdjacentElement() , insertAdjacentText()
|
支持 | 不支持 | 48.0 | 未知 | 支持 | 支持 |
assignedSlot , attatchShadow , shadowRoot , and slot
|
53 | 不支持 | 未知 | 未知 | 未知 | 未知 |
computedRole and computedName
|
41[4] | 未知 | 未知 | 未知 | 28[4] | 未知 |
移动浏览器兼容性
特性 | Android | Android Webview | Edge | Firefox Mobile | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|---|
基础支持 | 1.0 | - | 支持 | 1.0 | 支持 | 支持 | 1.0 | - |
scrollTopMax() and scrollLeftMax()
|
不支持 | - | 不支持 | 16.0 | 不支持 | 不支持 | 不支持 | - |
closest() |
未知 | - | 支持 | 35.0 | 未知 | 未知 | 未知 | - |
hasAttributes() |
支持 | - | 不支持 | 1.0 (on the Node interface) 35.0 (on this interface |
支持 | 支持 | 支持 | - |
insertAdjacentElement() , insertAdjacentText()
|
支持 | 支持 | 48.0 | 未知 | 支持 | 支持 | ||
assignedSlot , attatchShadow , shadowRoot , and slot
|
不支持 | 53.0 | 不支持 | 未知 | 未知 | 未知 | 未知 | 53 |
computedRole and computedName
|
不支持 | 不支持 | 未知 | 未知 | 未知 | 28[4] | 未知 | 不支持 |
[1] Internet Explorer 7 和 8 不正确地将注释作为元素子元素的一部分返回。这在 Internet Explorer 9 及更高版本中得到解决。
[2] Chrome 16 只允许全屏显示允许使用 webkitRequestPointerLock()
;Chrome 21 允许在可信网站(会有权限提示);Chrome 22 默认允许所有同源文档;如果 sandbox
属性的值设置为非标准值 webkit-allow-pointer-lock
,则 Chrome 23 允许它在沙箱中的 <iframe>
使用。
[3] 撤回了实现。请参阅 Mozilla bug 1166347。
[4] 通过标识控制。