jQuery 选择器理解


Posted in Javascript onMarch 16, 2010

$的选择器部分:
凡是运用$,其返回值是一个object
$选择器主要用于选择标签.基本用法是同css的选择器.但是,很让人兴奋的是,他支持常见的浏览器,而css中很多选择器是IE6所不支持的.
1.基本选择器(3种): ----凡是运用$,其返回值是一个object
$("标签名"),如$("p")是选取了所有的p标签节点
$("#id名"),如$("#test")是选取了id为test的标签节点
$(".class名"),如$(".test")是选取了所有class为test的标签节点
上面的$("标签名")和$(".class名")返回的都是所有满足的节点,至于进一步筛选可以添加一些函数,如eq,gt,lt等等.
2.组选择器: ----3种基本选择器的组合,“,”隔开
下面还是现做一个约定:把"标签名或#id名或.class名"记作mix,则mix表示一个标签名,或一个#id或一个.class.
$("mix,mix,mix,..."),如:$("div,#test1,p,.test2,#test3")

3.后代选择器: ----3种基本选择器的组合,“ ”隔开,直系皆生效
$("mix mix"),当然可以是多个嵌套,但后代选择器可以是深层子代,所以$("mix mix mix ...")这种写法作用不大.例子:$("div .test"):在div标签内的所有具有test的class的后代元素(就是被div嵌套的class属性为test的标签)

4.子选择器: ----3种基本选择器的组合,“>”隔开,只亲子有效
$("mix>mix"),这个放在后代选择器后面是为了和它做对比.子选择器只能选择第一代子代.不处理深层嵌套.例子:
$("div>.test")
<div><p class="test"></p></div>对这里的p段落标签有效.但对
<div><p><p class="test"></p></p></div>对这里的p段落标签无效,这里要用
$("div .test)
5.临近选择器: ----3种基本选择器的组合,“+”隔开,只下一个兄弟节点
$("mix+mix"),选取下一个兄弟节点.如:$("div +#test"),id为test的的节点必须是div的下一个兄弟节点.
<div></div><p id="test"></p>在$("div + #test")中能取到p段落节点
<div></div><p></p><p id="test"></p>则不能取到
6.属性选择器: ----“ |=|^|$|*”
把属性选择器不放在css选择器里面是因为jQuery中写法是不一样的.至于css中写法可以参考我之前写的一篇css的选择器一文.jQuery中是和xPath类似的写法:
$("mix[@attr]"):选取所有该mix且具有attr属性的节点
$("mix[@attr=a_value"]):选取所有该mix且具有attr属性并满足属性值为a_value的节点
$("mix[@attr^=a_value_head"]):attr属性的属性值是以a_value_head开头的
$("mix[@attr$=a_value_end"]):attr属性的属性值是以a_value_end结尾的
$("mix[@attr*=a_value"]):attr属性的属性值中包含a_value

7. 限定选择器:
这个名称是我自己起的,其实选择器组合都有限定的意思,你明白后面所介绍的知识即可.
具有限定子节点选择器:$("mix1[mix2]"):返回包含mix2的mix1节点.如:$("div[a]"):包含a标签的div.
这个和$("div a")不相同.后者表示div中的a标签,返回的是a标签对象,前者返回的是div标签对象
冒号限定结点选择器:$("mix:condition"):mix标签,并且满足限定条件.
E:root:类型为E,并且是文档的根元素
E:nth-child(n):是其父元素的第n个类型为E的子元素 ,基数从1开始
E:first-child:是其父元素的第1个类型为E的子元素
E:last-child:是其父元素的最后一个类型为E的子元素
E:only-child:且是其父元素的唯一一个类型为E的子元素

Javascript 相关文章推荐
基于jQuery UI CSS Framework开发Widget的经验
Aug 21 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
Jul 09 Javascript
Jquery方式获取iframe页面中的 Dom元素
May 07 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
May 20 Javascript
JS获取当前网页大小以及屏幕分辨率等
Sep 05 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 Javascript
jQuery+PHP+Mysql实现抽奖程序
Apr 12 jQuery
Vue2.0生命周期的理解
Aug 20 Javascript
vue实现的下拉框功能示例
Jan 29 Javascript
详解js创建对象的几种方法及继承
Apr 12 Javascript
Vue全局loading及错误提示的思路与实现
Aug 09 Javascript
jQuery 学习入门篇附实例代码
Mar 16 #Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
Mar 16 #Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
Mar 16 #Javascript
javascript 二维数组的实现与应用
Mar 16 #Javascript
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
Mar 15 #Javascript
jQuery MD5加密实现代码
Mar 15 #Javascript
[原创]js获取数组任意个不重复的随机数组元素
Mar 15 #Javascript
You might like
PHP编码规范的深入探讨
2013/06/06 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
JavaScript Prototype对象
2009/01/07 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
python实现BackPropagation算法
2017/12/14 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
Python调用C语言的实现
2019/07/26 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
remote接口和home接口主要作用
2013/05/15 面试题
机电一体化专业应届生求职信
2013/11/27 职场文书
售后客服工作职责
2014/06/16 职场文书
党委班子对照检查材料
2014/08/19 职场文书
出租房屋协议书
2014/09/14 职场文书
医德医风自我评价
2014/09/19 职场文书
2014年少先队工作总结
2014/12/03 职场文书
合作与交流自我评价
2015/03/09 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
使用refresh_token实现无感刷新页面
2022/04/26 Javascript