DOM扩展-选择符API
选择符API允许直接使用CSS选择器来选取页面元素,众多库推进了选择符API的标准化。
选择符API性能因为原生,所以性能必定强于各个库同类型的查询操作。
querySelector()
Selector API Level 1;
接收一个css选择符(可复杂),返回匹配的第一个元素或返回null;
传入不支持的选择符会抛出错误;
能调用
querySelector()
的对象为:Document类型,Element类型,DocumentFragment类型。
querySelectorAll()
- Selector API Level 1;
- 接收一个CSS选择符(可复杂),返回所有匹配元素组成的NodeList实例或null;
- 传入不支持的选择符会抛出错误;
- 能调用
querySelector()
的对象为:Document类型,Element类型,DocumentFragment类型。
matchesSelector()
- Selector API Level 2;
- 接收一个css选择器做参数,比较选择符与调用方法的元素是否匹配,返回布尔值;
- 各个浏览器支持性不同:IE9+通过
document.body.msMatchesSelector()
支持该方法,Firefox3.6通过document.body.mozMatchesSelector()
支持该方法,Safari5+和Chrome通过document.body.webkitMatchesSelector()
支持该方法。下面是一个包装的函数:
function matchesSelector(element, selector){
if(element.matchesSelector){
return element.matchesSelector(selector);
}else if(element.msMatchesSelector){
return element.msMatchesSelector(selector);
}else if(element.mozMatchesSelector){
return element.mozMatchesSelector(selector);
}else if(element.webkitMatchesSelector){
return element.webkitMatchesSelector(selector);
}else{
throw new Error("Not supported.");
}
}
if(matchesSelector(document.body, "body.page1")){
//执行操作
}