选择符API

querySelector()

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

//获得body元素
 var body = document.querySelector("body");
//获得ID为"myDiv"的元素
var myDiv = document.querySelector(‘#myDiv‘);
//获得类为"selected"的第一个元素
var selected = document.querySelector(‘.selected‘);
//获得类为"button"的第一个"img"元素
var img = document.body.querySelector(‘img.button‘);

通过Document类型调用querySelector()方法时,会在文档元素的范围内查找匹配的元素,而通过Element类型调用querySelector()方法时,只会在该元素后代元素的范围内查找匹配的元素。接收的CSS选择符可以简单也可以复杂,视情况而定,如果传入不被支持的选择符,querySelector()会抛出错误。

querySelectorAll()

querySelectorAll()方法时接收的参数与querySelector()方法一样,都是一个CSS选择符,但是返回的是所有匹配的元素而不仅仅是一个元素。这个方法返回的是一个NodeList的实例。具体来说,返回的值实际上是带有所有属性和方法的NodeList,而其底层实现则类似于一组元素的快照,而非不断对文档进行搜索的动态查询,这样实现可以避免使用NodeList对象通常会引起的大多数性能问题。

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

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

//获得ID为"myDiv"的元素中的所有的<em>元素。
var ems = document.getElementById("myDiv").querySelectorAll("em");
//获得类为"selected"的所有元素
var selecteds = document.querySelectorAll(‘.selected‘);
//获得类为"button"的第一个"img"元素
var strongs = document.body.querySelector(‘p strong‘);

要取得返回的NodeList中的每一个元素,可以使用item()方法,也可以使用方括号语法:

var i,len,strong;
for(i=0,len=strongs.length;i<len;i++){
    strong = strong[i];
    strong.clssName = "important";
}

同样与querySelector()类似,如果传入了浏览器不支持的选择符中有语法错误,querySelectorAll()会抛出错误。

matchesSelector()

matchesSelector()方法,方法接收一个参数,即CSS选择符,如果调用元素与该选择符匹配,返回true;否则,返回false,看例子。

if(document.body.matchesSelector("body.papel")){
        //true
    }

在取得某个元素引用的情况下,使用这个方法能够方便地检测它是否会querySelector()或querySelectorAll()方法接收一个CSS选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回null。

截止2011年年中,还没有浏览器支持matchesSelector()方法;不过,也有一些实验性的实现。IE9+通过msMatchesSelector()支持该方法,Firefox3.6+通过mozMatchesSelector()支持该方法,Safari5+和Chrome通过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")){
    //要执行的操作
}

原文地址:https://www.cnblogs.com/yuyujuan/p/9226543.html

时间: 2024-10-11 11:39:40

选择符API的相关文章

DOM扩展-Selectors API(选择符 API)

DOM扩展 对DOM的两个主要扩展是SelectorsAPI(选择符API)和HTML5 SelectorsAPI(选择符API)是由W3C发起制定的一个标准,致力于浏览器原生支持CSS查询,SelectorsAPILevel 1的核心是两个方法:querySelector()和querySelectorAll(),可以通过Document及Element类型的实例调用他们. querySelector()方法接受一个CSS选择符,返回与该模式匹配的第一个元素,如果没有找到匹配的元素,返回nul

[JavaScript忍者系列] — CSS选择符引擎入门

http://www.cnblogs.com/newyorker/archive/2013/02/14/2891298.html 本文的目标读者是入门级Web前端开发人员. 本文介绍了CSS选择符表达式引擎的基本原理.CSS选择符引擎几乎是前端开发人员每天在使用的工具.本文将逐一介绍实现该引擎的各种策略.首先,我们介绍基于W3C标准API的方法. W3C标准的Slectors API 能够支持的平台: Safari 3+, Firefox 3.1+, Internet Explorer 8+,

javascript之DOM选择符

javascript库中最常用的一项功能,就是根据CSS选择符选择与某个模式匹配的DOM元素.实际上jQuery的核心就是通过css选择符查询DOM文档取得元素的引用,从而抛开了getElementById()和getElementByTagName() Selectors API就是有W3C发起的一个标准,致力于让浏览器原生支持CSS查询. Selectors API 的核心两个方法:querySelector()和querySelectorAll().在兼容的浏览器中可以通过Document

简单入门JavaScript库jQuery:用选择符创建jQuery对象并应用方法

jQuery,顾名思义,也就是JavaScript和查询(Query),是一个辅助JavaScript开发的库. jQuery 能极大地简化 JavaScript 编程. 目录1 jQuery库包含的特性2 jQuery与JS3 获取页面元素4 DOM事件与jQuery方法5 简易操作DOM元素6 处理尺寸7 遍历操作8 过滤操作9 jQuery对JS的增强10 为页面添加动态效果11 jQuery与Ajax12 jQuery工具 通过jQuery,您可以选取(查询,query) HTML元素,

11 css中分组选择符的用法

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style type="text/css"> h1,span{color:red;} a:hover{color:#2EE926;} /*分组选择符的用法*/ </style> </head> <body&

css那些事儿1 css选择符与管理

结合当下作为一名net程序员,难以找到工作情况下,先学习前端知识,前端现在已成为web和app的一个交叉点,web前端化,app使用h5技术前端化,至于什么后台数据库 缓存 消息队列的路线如果没有大型项目平台的建设机会是很难能够大纵深的切入,恰恰前端通过编写微信公众号作为一个切入点,希望不会再也找不到工作,再也无法跳巢的尴尬境地. 1 css语法 选择符{属性:value}css的语法非常简单. 2 css常见简写 color:#ffffff ;color:rgb(255,255,255);rg

CSS选择符

一.选择符类型及使用 1.html标记,在CSS中可选择要实现目标的标记, 如:P{属性:值} 2.多个html标记,可在CSS中写相对的标记用逗号隔开. 如:h1,h2,h3,h4,h5{属性:值} 3.选择符在已经使用过的标记,再重复添加需在已经添加的样式下一行方可实现. 如要添加在前面,可用 [!important][IE浏览器不支持]. 如: h2{color:green !important;} h2,h3,h4,h5{color:grey; font-size:36px;} 二.id

HTML/CSS 选择符优先级

CSS的选择符优先级 1.同级样式默认后者覆盖前者 2.样式优先级 类型(1) < class[type](10)=伪类(10) < id(100) < style行间样式(1000) < style内部样式 < link外部引入样式 选择符的相应值综合相加起来大的优先级高 注 : 相应值仅仅是代表他们的等级, 11个类型选择符的优先级仍然小于1个类选择符,以此类推 3.important(IE7及以上) 加了important的样式属性优先级最高. 例 .box{backg

CSS之选择符、链接、盒子模型、显示隐藏元素

<html> <head> <meta charset="utf-8"> <title>选择符.链接.盒子模型.显示隐藏元素</title> <style> a:link{ color:red; } a:visited{ color:black; } a:hover{ color:blue; } a:active{ color:green; } </style> </head> <bo