日期:2014-05-16  浏览次数:20552 次

javascript学习笔记六

第11章 DOM扩展

?????? 对DOM的两个主要的扩展是Selectors API(选择符API)和HTML5。

11.1 选择符API

?????? Selectors API是由W3C发起制定的一个标准,致力于让浏览器原生支持CSS查询。所有实现这一功能的JavaScript库都会写一个基础的CSS解析器,然后再使用已有的DOM方法查询文档并找到匹配的节点。

11.1.1 querySelector()方法

?????? querySelector方法接收一个CSS选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null。

11.1.2 querySelectorAll()方法

?????? querySelectorAll()方法接收的参数与querySelector()方法是一样,都是一个CSS选择符,但返回的是所有匹配的元素而不仅仅是一个元素。这个方法返回的是一个NodeList的实例。

?????? 只要传给querySelectorAll()方法的CSS选择符有效,该方法都会返回一个NodeList对象,而不管找到多少匹配的元素。如果没有找到匹配的元素,NodeList就是空的。

?????? 与querySelector()类似,能够调用querySelectorAll()方法的类型包括Document、DocumentFragment和Element。

11.1.3 matchesSelector()方法

?????? Selectors API Level 2规范为Element类型新增了一个方法matchesSelector()。这个方法接收一个参数,即CSS选择符,如果调用元素与该选择符匹配,则返回true;否则返回false。

11.2 元素遍历

?????? Element Traversal API为DOM元素添加了以下5个属性。

?????? (1)childElementCount:返回子元素(不包括文本节点和注释)的个数。

?????? (2)firstElementChild:指向第一个子元素;

?????? (3)lastElementChild:指向最后一个子元素;

?????? (4)previousElementSibling:指向前一个同辈元素;

?????? (5)nextElementSibling:指向后一个同辈元素;

11.3 HTML5

11.3.1 与类相关的扩充

?????? 1.getElementsByClassName()方法

?????? getElementsByClassName()方法接收一个参数,即一个包含一或多个类名的字符串,返回带有指定类的所有元素的NodeList。传入多个类名时,类名的先后顺序不重要。

?????? 2.class