JavaScript --- DOM document 扩展

选择符API
1、querySlector()方法
querySlector()方法接受一个CSS选择器,返回与该模式匹配的第一个元素。通过Document类型调用querySlector()方法时,会在文档元素的范围内查找匹配的元素。而通过Element类型调用querySlector()方法时,只会在该元素的范围内查找匹配的元素。
1 | //取得body元素 |
2、querySelectorAll()方法
querySelectAll()方法接受的参数与querySelect()方法一样都是一个CSS选择符,但querySelectAll()方法返回的是一个NodeList的实例,不仅仅是一个元素,而是所有匹配到的都会在NodeList中。只要querySelectAll()方法的CSS选择符有效,该方法都会返回一个NodeList对象,不管匹配到多少元素,就算是空的,也会返回一个Nodelist。
1 | //取得所有类为 "selected"的元素 |
3、matchesSelector()方法
Element类型新增的一个方法matchesSelector(),接受一个CSS选择符为参数,如果调用元素与该选择符匹配,返回true;否则返回false。
1 | if(document.body.matchesSelctor("body.page1")){ |
与类相关的扩充
classList属性
为所有元素添加classList属性。它自己有一个表示自己包含多少元素的属性,取得每个元素可以使用item()方法,也可以使用方括号语法。此外还有如下方法:
add(value):将给定的字符串值添加到列表中,如果值已经存在,就不添加了。
contains(value):表示列表中是否存在给定的值,如果存在就返回true,否则返回flase。
remove(value):从列表中删除给定的字符串。
toggle(value):如果列表中已经存在给定的值,则删除它;如果列表中没有给定的值,则添加它。
支持chrome和Firfox 3.6和IE10以上。
1 | //向div元素中添加div类 |
焦点管理
document.activeElement属性,这个属性始终会引用DOM中当前获得焦点的元素。元素获取焦点的方式有页面加载,用户输入(通常是按Tab键),和代码汇总调用focus()方法。
默认情况下,文档刚刚加载完成时,document.activeElement中保存的是document.body元素的引用。文档加载期间,document.activeElement的值为null。
另外就是新增了document.hasFocus()方法,这个方法用于确定文档是否获得了焦点。
HTMLDocument的变化
1、readyState属性
它有两个可能的值
- loading,正在加载文档
complete,已经加载完文档
使用document.readyState的最恰当方式,就是通过它来实现一个指示文档已经加载完成的指示器。用法如下:
1 | if(document.readyState =="complete"){ |
2、兼容模式
这个属性是为了告诉开发人员浏览器采用的哪种渲染模式。
1 | if (document.compatMode == "CSS1Compat") { |
3、head属性
引用文档的\
1 | var head = document.head || document.getElementsByTagName("head")[0]; |
字符集属性
charset属性表示文档中实际使用的字符集,也可以直接设置。
1 | document.charset |
插入标记
1、innerHTML属性
在读模式下,innerHTML属性返回与调用元素的所有子节点(包括元素,注释和文本节点)和对应的HTML标记。在写模式下,innerHTML会根据指定的值创建新的DOM树,然后用这个DOM树完全替换调用元素原先的所有子节点。
不是所有的元素都支持innerHTML属性。不支持innerHTML的元素有:\
