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 相关文章推荐
jquery 问答知识整理
Feb 11 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
Apr 07 Javascript
javascript:;与javascript:void(0)使用介绍
Jun 05 Javascript
JavaScript加强之自定义callback示例
Sep 21 Javascript
JavaScript实现获得所有兄弟节点的方法
Jul 23 Javascript
详解angularJs指令的3种绑定策略
Apr 13 Javascript
详解Vue爬坑之vuex初识
Jun 14 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
Feb 27 Javascript
ES6基础之数组和对象的拓展实例详解
Aug 22 Javascript
Vuejs通过拖动改变元素宽度实现自适应
Sep 02 Javascript
ES11屡试不爽的新特性,你用上了几个
Oct 21 Javascript
详解JavaScript中Arguments对象用途
Aug 30 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与已存在的Java应用程序集成
2006/10/09 PHP
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
PHP 编程安全性小结
2010/01/08 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
解析用PHP实现var_export的详细介绍
2013/06/20 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
2016/11/28 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
Python创建日历实例
2014/08/21 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
python使用folium库绘制地图点击框
2018/09/21 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
通过python 执行 nohup 不生效的解决
2020/04/16 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
UNIX命令速查表
2012/03/10 面试题
售后服务经理岗位职责范本
2014/02/22 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
党员志愿者活动方案
2014/08/28 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
代办社保委托书范文
2014/10/06 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
node快速搭建后台的实现步骤
2022/02/18 NodeJs
css3应用示例:新增的选择器
2022/03/16 HTML / CSS
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers