DOM扩展知识点总结

(一)选择符API

Selectors API Level 1 的核心是两个方法:querySelector()和querySelectorAll()。在兼容的浏览器中,可以通过Document 及Element 类型的实例调用它们。目前已完全支持Selectors API Level 1的浏览器有IE 8+、Firefox 3.5+、Safari 3.1+、Chrome 和Opera 10+。

querySelector()方法

DOM扩展知识点总结_第1张图片

querySelectorAll()方法

DOM扩展知识点总结_第2张图片

(二)HTML5新增

(1)与类相关扩充

getElementsByClassName()方法

支持 getElementsByClassName()方法的浏览器有IE 9+、Firefox 3+、Safari 3.1+、Chrome 和Opera 9.5+。

(2)焦点管理

document.activeElement

这个属性指向的是当前获得焦点的元素,使用focus()可以让元素获得焦点

DOM扩展知识点总结_第3张图片

document.hasFocus()

这个方法用于确定文档是否获得了焦点

DOM扩展知识点总结_第4张图片

实现了这两个属性的浏览器的包括IE 4+、Firefox 3+、Safari 4+、Chrome 和Opera 8+。

(3)HTMLDocument的变化

readyState 属性

document.readyState表示文档的加载进度,它有两个值分别为'loading'和'complete'.

DOM扩展知识点总结_第5张图片

支持 readyState 属性的浏览器有IE4+、Firefox 3.6+、Safari、Chrome 和Opera 9+。

compatMode 的属性

document.compatMode属性告诉开发人员浏览器采用了哪种渲染模式。在标准模式下,document.compatMode 的

值等于"CSS1Compat",而在混杂模式下,document.compatMode 的值等于"BackCompat"。

DOM扩展知识点总结_第6张图片

兼容性:IE、Firefox、Safari 3.1+、Opera 和Chrome

document.charset

字符编码

document.defaultCharset

当前文档的默认字符编码

(4)自定义数据属性

HTML5 规定可以为元素添加非标准的属性,但要添加前缀data-,目的是为元素提供与渲染无关的信息,或者提供语义信息。

DOM扩展知识点总结_第7张图片

支持自定义数据属性的浏览器有Firefox 6+和Chrome

(5)插入标记

innerHTML属性

在读模式下,innerHTML 属性返回与调用元素的所有子节点(包括元素、注释和文本节点)对应的HTML 标记

在写模式下,innerHTML 会根据指定的值创建新的DOM树,然后用这个DOM树完全替换调用元素原先的所有子节点

outerHTML 属性

在读模式下,outerHTML 返回调用它的元素及所有子节点的HTML 标签

在写模式下,outerHTML会根据指定的HTML 字符串创建新的DOM 子树,然后用这个DOM子树完全替换调用元素。

(6)内存与性能问题

使用本节介绍的方法替换子节点可能会导致浏览器的内存占用问题,尤其是在IE 中,问题更加明显。在删除带有事件处理程序或引用了其他JavaScript 对象子树时,就有可能导致内存占用问题。

假设某个元素有一个事件处理程序(或者引用了一个JavaScript 对象作为属性),在使用前述某个属性将该元素从文档树中删除后,元素与事件处理程序(或JavaScript 对象)之间的绑定关系在内存中并没有一并删除。如果这种情况频繁出现,页面占用的内存数量就会明显增加。

因此,在使用innerHTML、outerHTML 属性方法时,最好先手工删除要被替换的元素的所有事件处理程序和JavaScript 对象属性

(7)scrollIntoView()方法

scrollIntoView(alignWithTop)  滚动浏览器窗口或容器元素,以便在当前视窗的可见范围看见当前元素。如果alignWithTop为true,或者省略它,窗口会尽可能滚动到自身顶部与元素顶部平齐。-------目前各浏览器均支持

//例子:让元素可见

document.forms[0].scrollIntoView();

部分浏览器支持的专有扩展省略。。。

你可能感兴趣的:(DOM扩展知识点总结)