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实现多级下拉菜单的实例代码
Oct 02 Javascript
简述JavaScript中正则表达式的使用方法
Jun 15 Javascript
Javascript简单改变表单元素背景的方法
Jul 15 Javascript
js实现根据身份证号自动生成出生日期
Dec 15 Javascript
实例讲解jQuery中对事件的命名空间的运用
May 24 Javascript
Bootstrap企业网站实战项目4
Oct 14 Javascript
vue中倒计时组件的实例代码
Jul 06 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
Jan 18 jQuery
基于layPage插件实现两种分页方式浅析
Jul 27 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
Mar 09 Javascript
JavaScript实现轮播图效果
Oct 30 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新手上路(八)
2006/10/09 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
Yii2中datetime类的使用
2016/12/17 PHP
php获取excel文件数据
2017/04/21 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
python开发之str.format()用法实例分析
2016/02/22 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
医学检验专业大学生求职信
2013/11/18 职场文书
列车长先进事迹材料
2014/01/25 职场文书
幼儿园元旦亲子活动方案
2014/02/17 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
岗位职责说明书模板
2014/07/30 职场文书
2014离婚协议书范文
2014/09/10 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
北京爱情故事观后感
2015/06/12 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
win10下go mod配置方式
2021/04/25 Golang
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python
JVM钩子函数的使用场景详解
2021/08/23 Java/Android