HTML5的JavaScript选择器介绍

摘要:
“:firstchild”的代码如下:documentquerySelectorAll;//仅返回id为p1的p元素。除了上述九种常见的选择方法外,还有许多其他更高级的选择器使用方法。

在HTML5出现之前使用JavaScript查找DOM元素,有以下三种原生的方法:

  • getElementById:根据指定元素的id属性返回元素
  • getElementsByName:返回所有指定name属性的元素
  • getElementsByTagName:返回所有指定标签的元素

HTML5新增的选择器,方法有两种:

  • querySelector:根据选择器规则返回第一个符合要求的元素
  • querySelectorAll:根据选择器规则返回所有符合要求的元素

支持新的HTML5 JavaScript选择器接口的浏览器有:IE 8+、FireFox 3.5+、Safari 3.2+、Chrome 4.0+、Oprea 10.1+ 。

一、选择器的分类

1. ID选择器

使用ID选择器时,需在前面添加“#”,区分大小写,语法如下:

document.querySelector('#id'); //等同于document.getElementById('id');

2. 元素选择器

元素选择器通过指定的标签查询元素,此时querySelectorAll等同于getElementsByTagName,语法如下:

document.querySelectorAll('a'); //获取页面上的所有a元素并返回元素

3. 样式类选择器

使用元素的样式类获取一个或一类元素,样式名字前使用“.”(英文句号)开头,语法如下:

document.querySelectorAll('.btn'); //获取所有样式类中包含btn类名的元素

4. 分组选择器

使用querySelectorAll不仅可以获取一个或一类元素,还可以同时获取其他类别元素,两种类型之间使用逗号隔开,语法如下:

document.querySelectorAll('a,p'); //获取页面上所有a元素和p元素,并通过一个列表返回
document.querySelectorAll('.btn,.txt'); //获取页面上所有包含btn和txt样式类名的元素

5. 属性选择器

获取页面上包含指定属性的元素,属性名称可以是元素原生属性和用户自定义属性,语法如下:

document.querySelectorAll('a[target="_blank"]'); //获取页面上所有target属性为_blank的a元素
document.querySelectorAll('img[data-id]'); //获取页面上所有带有自定义属性data-id的img元素

6. 后代选择器

主要用于选择作为某元素后代的元素,规则左边的选择器一端包含两个或多个用空格分隔的选择器,如div a可以理解为查找所有被div包围的所有a元素,语法如下:

document.querySelectorAll('div a'); //获取页面上所有被div包含的a元素
document.querySelectorAll('div .btn'); //获取页面上所有被div包含的带有btn样式类名的元素

 7. 子元素选择器

后代选择器会将元素底下的所有相关元素都搜索出来,如果想进一步缩小范围,可以使用子元素选择器,只会选择某个元素的一级子元素,子元素用“>”(大于号)表示,代码如下:

<html>
    <div id="first">
        <div></div>
        <div></div>
    </div>
</html>    

<script>
    document.querySelectorAll('html>div'); //只返回一个id为first的div元素
</script>

 8. 相邻兄弟选择器(比较少用)

选择紧接在另一个元素后的元素,而且两者有相同的父元素,相邻兄弟选择器使用“+”(加号),代码如下:

<div>
    <div></div>
    <div></div>
</div>
<p id="p1"></p>
<p id="p2"></p>
<script>
    document.querySelectorAll('div+p'); //只返回一个id为p1的p元素
</script>

 9. 伪类选择器

“:first-child”表示选择元素的第一个子元素,“:last-child”表示选择元素的最后一个子元素,“:nth-child(n)”表示选择元素的第n个子元素。“:first-child”的使用例子,代码如下:

<div>
    <p id="p1"></p>
    <p id="p2"></p>
</div>

<script>
    document.querySelectorAll('p:first-child'); //只返回一个id为p1的p元素
</script>

除了上述九种常用的选择方法外,还有很多其他更高级的选择器使用方法。

更多的选择器方法可参考jQuery的文档:地址是:http://api.jquery.com/category/selectors/

原创文章,转载请注明出处:http://www.cnblogs.com/iyitong/p/4229355.html

免责声明:文章转载自《HTML5的JavaScript选择器介绍》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇HFish蜜罐-基于Docker的搭建与配置.binvox格式解析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

html5对密码加密

今天找了几个关于对html5的密码加密的方法,仅供参考 1、base64加密:在页面中引入base64.js文件,调用方法为: <html> <head> <meta charset="utf-8"> <title>base64加密</title> <script type=...

HTML5 文件处理之FileAPI简介整理

  在众多HTML5规范中,有一部分规范是跟文件处理有关的,在早期的浏览器技术中,处理小量字符串是js最擅长的处理之一。但文件处理,尤其是二进制文件处理,一直是个空白。在一些情况下,我们不得不通过Flash/ActiveX/NP插件或云端的服务器处理较为复杂或底层的数据。今天,HTML5的一系列新规范正在致力于让浏览器具备更强大的文件处理能力。 今天要介绍...

8个非常有用的HTML5工具

摘要 今天我们将大家介绍一些非常好的在线工具,可以帮助Web开发人员在HTML5编码时更加容易和简单。在些在线工具包括:HTML5 Visual Cheat Sheet, Swith to HTML5, Initializr, HTML5 Canvas Cheat Sheet, LimeJS, HTML5 Demos, Web Apps Tracker和H...

分享一个利用HTML5制作的海浪效果代码

在前面简单讲述了一下HTML里的Canvas,这次根据Canvas完成了“海浪效果”(水波上升)。 (O(∩_∩)O哈哈哈~作者我能看这个动画看一下午) 上升水波.gif 动画分析构成:贝塞尔曲线画布:Canvas效果:波浪涨潮(上升、波动)触发条件:点击按钮 贝塞尔曲线.gif 算法实现分析:从sin()函数切入,sin()越大波度起伏越大,简单说就...

HTML5播放器 MediaElement.js 使用方法

目前已经有很多html5播放器可以使用,使用html5播放器可以轻松的在页面中插入媒体视频,从而使我们的web页面变得更加丰富多彩,所以今 天向大家推荐一款非常优秀的html5播放器MediaElement.js,它不仅能够添加我们常用的html5视频格式(mp4,m4v,mov), 而且还支持回退方式,即一些低版本的浏览器不支持 HTML5 播放可以采...

分享10款激发灵感的最新HTML5/CSS3应用

在HTML5家族中,CSS3无疑是一名举足轻重的家庭成员。我们可以利用CSS3的各种特性来完成非常炫酷实用的HTML5应用插件,方便前端开发者快速实现需要的功能。今天分享的10款最新HTML5/CSS3应用也许能激发你的灵感。 1、HTML5/CSS3实现iOS Path菜单 菜单动画很酷 Path菜单相信大家都不陌生吧,它在iOS中非常流行,今天我们要...