jQuery 选择器详解


Posted in Javascript onJanuary 19, 2015

$()函数在很多JavaScript类库中都被作为一个选择器函数来使用,在jQuery中就是.

$(“#id”)通过id来获取元素,用来代替document.getElementById()函数.

$(“tagName”)通过标签名来获取元素,用来代替document.getElementsByTagName()函数.

jQuery的基本语法是:$(selector).action(), selector即选择器.

jQuery选择器的分类

jQuery的选择器基本可以分为四大类:

基本选择器(basic)

层次选择器(level)

过滤选择器(filter)

表单选择器(form)

有些类别又可以分为具体的子类别.

基本选择器

jQuery 选择器详解

* 匹配所有元素.示例:$(“*")选取所有元素.

#id根据给定的id匹配元素(最多只返回一个元素).示例: $("#lastname”)选取id="lastname"的元素.

.class根据给定的类名匹配元素.示例:$(".intro”)选取所有class=“intro"的元素.

element根据给定的元素名匹配元素.示例: $(“p")选取所有<p>元素.

.class.class 示例: $(".intro.demo”)选取所有且class="demo”的元素.(交集).

selector1, selector2, …, selectorN, 将每一个选择器匹配到的元素合并后一起返回.(并集).

除了#id选择器返回单个元素外,其他选择器返回的都是元素集合.

这是因为HTML规范里面id应该是唯一的,所以重复id的元素没有被考虑.

如果多个元素的id相同,取这个id也只能获取第一个元素.即获取的jQuery对象的length属性是1.

如果要匹配的元素不存在,则都返回一个空的jQuery对象.

     基本选择器之间可以组合,用逗号分隔,结果取所有条件的结果的并集.

当没有用逗号分隔时,应该是所有条件都满足的交集.

层次选择器

jQuery 选择器详解

$(“ancestor descendant”) 选取ancestor元素里的所有descendant后代元素,包括直接子元素和更深嵌套的后代元素.

例:$(“div span”)选取<div>里的所有的<span>元素.

注意:选择器都是全页面扫描,返回一个集合,所有符合选择条件的元素都会被包括进去.所以多个<div>下面的<span>都会被选择.

$(“parent>child”)选取parent元素下的child子元素,即只有直接子元素被选取.其他后代元素不包括.

例:$(“div>span”)选取<div>元素下元素名是<span>的子元素.

$(“prev+next”)选取紧接在prev元素后的next元素(同一层级).

例:$(“.one+div”)选取class为one的下一个div元素.

$(“prev+siblings”)选取prev元素之后的所有siblings元素(同一层级).

例:$(“#two~div”)选取id为two的元素后面的所有<div>兄弟元素.

等价方法:

$(“prev+next”)等价于方法$(“prev”).next(“next”);选取prev元素之后紧接着的一个next元素.

$(“prev~sublings”)等价于方法$(“prev”).nextAll(“sublings”),选取prev元素之后的所有同级的sublings元素.

而$(“prev”).sublings(“next”)方法选取与prev同辈的所有next元素,与前后位置无关.

过滤选择器

过滤选择器这个大类又分为六个子类:

基本过滤;内容过滤;可见性过滤;属性过滤;子元素过滤;表单对象属性过滤.

基本过滤

jQuery 选择器详解

gt和lt分别是greaterthan和lessthan.

jQuery 选择器详解

内容过滤

jQuery 选择器详解

可见性过滤

jQuery 选择器详解

属性过滤

jQuery 选择器详解

属性过滤是用方括号来标识的.

注意多个属性过滤选择器连在一起的时候,取的是结果的交集.

子元素过滤

jQuery 选择器详解

前面基本过滤选择器里面index是从0算起的,这里子元素过滤选择器的index是从1开始算起的.

表单对象属性过滤

jQuery 选择器详解

表单选择器

jQuery 选择器详解

Javascript 相关文章推荐
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
Jun 11 Javascript
textarea中的手动换行处理的jquery代码
Feb 26 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
Mar 28 Javascript
扩展jQuery对象时如何扩展成员变量具体怎么实现
Apr 25 Javascript
js实现常用排序算法
Aug 09 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
Jan 26 Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 Javascript
Three.js实现简单3D房间布局
Dec 30 Javascript
详解Vue、element-ui、axios实现省市区三级联动
May 07 Javascript
NProgress显示顶部进度条效果及使用详解
Sep 21 Javascript
js实现表格数据搜索
Aug 09 Javascript
jQuery使用之标记元素属性用法实例
Jan 19 #Javascript
jQuery应用之jQuery链用法实例
Jan 19 #Javascript
浅谈Unicode与JavaScript的发展史
Jan 19 #Javascript
jQuery中ready事件用法实例
Jan 19 #Javascript
jQuery中offsetParent()方法用法实例
Jan 19 #Javascript
jQuery中outerWidth()方法用法实例
Jan 19 #Javascript
javascript数据类型示例分享
Jan 19 #Javascript
You might like
关于PHP中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
ThinkPHP模板替换与系统常量及应用实例教程
2014/08/22 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
JavaScript常用脚本汇总(一)
2015/03/04 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
JS图片预加载三种实现方法解析
2020/05/08 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
Python字符串格式化
2015/06/15 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
python读取xlsx的方法
2018/12/25 Python
Python3多线程基础知识点
2019/02/19 Python
使用Python画股票的K线图的方法步骤
2019/06/28 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
软件测试工程师结构化面试题库
2016/11/23 面试题
业务内勤岗位职责
2014/04/30 职场文书
法律顾问服务方案
2014/05/15 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
SQL中的连接查询详解
2022/06/21 SQL Server