(一)选择符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()方法
querySelectorAll()方法
(二)HTML5新增
(1)与类相关扩充
getElementsByClassName()方法
支持 getElementsByClassName()方法的浏览器有IE 9+、Firefox 3+、Safari 3.1+、Chrome 和Opera 9.5+。
(2)焦点管理
document.activeElement
这个属性指向的是当前获得焦点的元素,使用focus()可以让元素获得焦点
document.hasFocus()
这个方法用于确定文档是否获得了焦点
实现了这两个属性的浏览器的包括IE 4+、Firefox 3+、Safari 4+、Chrome 和Opera 8+。
(3)HTMLDocument的变化
readyState 属性
document.readyState表示文档的加载进度,它有两个值分别为'loading'和'complete'.
支持 readyState 属性的浏览器有IE4+、Firefox 3.6+、Safari、Chrome 和Opera 9+。
compatMode 的属性
document.compatMode属性告诉开发人员浏览器采用了哪种渲染模式。在标准模式下,document.compatMode 的
值等于"CSS1Compat",而在混杂模式下,document.compatMode 的值等于"BackCompat"。
兼容性:IE、Firefox、Safari 3.1+、Opera 和Chrome
document.charset
字符编码
document.defaultCharset
当前文档的默认字符编码
(4)自定义数据属性
HTML5 规定可以为元素添加非标准的属性,但要添加前缀data-,目的是为元素提供与渲染无关的信息,或者提供语义信息。
支持自定义数据属性的浏览器有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();