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 相关文章推荐
利用Ext Js生成动态树实例代码
Sep 08 Javascript
js选择并转移导航菜单示例代码
Aug 19 Javascript
JavaScript的Date()方法使用详解
Jun 09 Javascript
angularjs学习笔记之完整的项目结构
Sep 26 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
Dec 31 Javascript
JS代码实现table数据分页效果
May 26 Javascript
关于js函数解释(包括内嵌,对象等)
Nov 20 Javascript
bootstarp modal框居中显示的实现代码
Feb 18 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
May 17 Javascript
JS正则表达式封装与使用操作示例
May 15 Javascript
JavaScript利用键盘码控制div移动
Mar 19 Javascript
vue 解决provide和inject响应的问题
Nov 12 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编写PDF文档生成器
2006/10/09 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
2013/09/28 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
php使用递归函数实现数字累加的方法
2015/03/16 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
2017/06/09 PHP
文本加密解密
2006/06/23 Javascript
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
Bootstrap CSS组件之导航(nav)
2016/12/17 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
JS实现的贪吃蛇游戏完整实例
2019/01/18 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
js实现3D旋转相册
2020/08/02 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
Python骚操作之动态定义函数
2019/03/26 Python
PyQt5下拉式复选框QComboCheckBox的实例
2019/06/25 Python
Python生成器generator原理及用法解析
2020/07/20 Python
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
如何利用find命令查找文件
2016/11/18 面试题
兼职学生的自我评价
2013/11/24 职场文书
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android