jquery 选择器部分整理


Posted in Javascript onOctober 28, 2009

这个是网页版,直接用ctrl+F搜索,如果大家不是经常上网,可以用chm版的更方便些。
jQuery 1.3 API 参考手册 CHM

锋利的jquery 电子书

近期三水点靠木将会将一些jquery学习教程逐步发一些。参考了锋利的jquery一书。

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

3.后代选择器:
$("mix mix"),当然可以是多个嵌套,但后代选择器可以是深层子代,所以$("mix mix mix ...")这种写法作用不大.例子:$("div .test"):在div标签内的所有具有test的class的后代元素(就是被div嵌套的class属性为test的标签)
可以见DEMO。

4.子选择器:
$("mix>mix"),这个放在后代选择器后面是为了和它做对比.子选择器只能选择第一代子代.不处理深层嵌套.例子:
$("div>.test")
<div><p class="test"></p></div>对这里的p段落标签有效.但对
<div><p><p class="test"></p></p></div>对这里的p段落标签无效,这里要用
$("div .test)

5.临近选择器:
$("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的子元素
E:empty:没有子元素(包括text节点)的类型为E的元素
E:enabled
E:disabled:类型为E,允许或被禁止的用户界面元素
E:checked:类型为E,处于选中状态的用户界面元素(例如单选按钮或复选框)
E:visible:选择所有可见元素(display值为block或visible,visibility值为visible元素,不包括hide域)
E:hidden:选择所有隐藏元素(非Hide域,且display值为block或visible,visibility值为visible的元素)
E:not(s):类型为E,不匹配选择器s
E:eq(n),E:gt(n),E:lt(n):元素限定
E:first:相当于E:eq(0)
E:last:最后一个匹配的元素
E:even:从匹配的元素集中取序数为偶数的元素
E:odd:从匹配的元素集中取序数为奇数的元素
E:parent:选择包含子元素(包含text节点)的所有元素
E:contains('test'):选择所有含有指定文本的元素
表单选择器:
E:input:选择表单元素(input,select,textarea,button)
E:text:选择所有文本域(type="text")
E:password:选择所有密码域(type="password")
E:radio:选择所有单选按钮(type="radio")
E:checkbox:选择所有复选框(type="checkbox")
E:submit:选择所有提交按钮(type="submit")
E:image:选择所有图像域 (type="image")
E:reset:选择所有清除域(type="reset")
E:button:选择所有按钮(type="button")
当然包括E:hidden

8.xPath路径查询:

先介绍下xPath的语法:
/:选取根节点
//:选取文档中所有符合条件的节点,不管该节点位于何处
.:选取当前节点
..:选取单前节点的父节点
@:选取属性,这个在之前说过了(属性选择器)
nodename:选取节点下的所有节点
jQuery中的应用:
根节点是很少用到的,常用的如下面的例子:
$("div/p")相当于$("div>p")
$("div//p")相当于$("div p")
$("//div/../p"):所有div节点的父节点下的p标签
还有相对路径的写法以及支持的Axis选择器,还不是会应用,不介绍了...已经一大堆了

$的其他用法:

$(html节点):根据提供的原始HTML标记字符串,动态创建由jQuery对象包装的DOM元素.如:
$("<div><p>Hello</p></div>").appendTo("#body");//把<div><p>Hello</p></div>添加到body元素中
$(document):网页文档对象
$(document.body):网页body对象,和$("body")是一样的
$(函数):DOM载入后就执行该函数.所以$(document).ready()可以写做$()
$(选择器部分,选择器来源):这个举例说明
$("input:radio",document.forms[0]):在文档的第一个表单中,搜索所有单选按钮
$("div",xml.responseXML):查询指定XML文档中的所有div元素
选择器来源可以是:作为上下文的DOM元素,文档或jQuery对象
还有两个:$.extend(prop)和$.noConflict()是和插件以及和其他库兼容的使用,以后再写

jQuery的core部分还有:

eq(数字):将匹配的元素集合缩减为一个元素。这个元素在匹配元素集合中的位置变为0,而集合长度变成1
gt(数字):将匹配的元素集合缩减为给定位置之后的所有元素
lt(数字):将匹配的元素集合缩减为给定位置之前的所有元素
上面三个的例子:
$("div:eq(1)")//第2个div
$("div:gt(2)")//第3个div以及之后的div
$("div:lt(2)")//第2个div以及之前的div,即第1个div和第2个div

length或size():当前匹配的元素数量

each():以每一个匹配的元素作为上下文来执行一个函数。这意味着,每次执行传递进来的函数时,函数中的this关键字都指向一个不同的元素(每次都是一个不同的匹配元素).而且,在每次执行函数时,都会给函数传递一个表示作为执行环境的元素在匹配的元素集合中所处位置的数字值作为参数.
$("img").each(function(i){ this.src = "test" + i + ".jpg"; });//迭代图像,并设置它们的src属性

get():如果没有参数,返回所有,是一个对象数组;如果带参数,必须是数字,基数从0开始.例子:
$("div").get():返回一个div对象数组
$("div").get(1):返回第二个div对象
index(需求的元素节点对象):返回数字.用个例子说明:
$("div").index($(".test"))[1] //表示从所有div节点中查找class属性为test的节点.并且找的是第二个节点(基数从0开始).返回值是该节点在div节点中的位置(基数也是从0开始).

Javascript 相关文章推荐
Javascript Global对象
Aug 13 Javascript
2014最热门的JavaScript代码高亮插件推荐
Nov 25 Javascript
Javascript单例模式的介绍和实例
Oct 08 Javascript
类似于QQ的右滑删除效果的实现方法
Oct 16 Javascript
纯JavaScript手写图片轮播代码
Oct 20 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
Jan 11 Javascript
js实现弹窗暗层效果
Jan 16 Javascript
ReactNative踩坑之配置调试端口的解决方法
Jul 28 Javascript
webpack external模块的具体使用
Mar 10 Javascript
详解Vue打包优化之code spliting
Apr 09 Javascript
微信小程序tabbar底部导航
Nov 05 Javascript
微信小程序基于Taro的分享图片功能实践详解
Jul 12 Javascript
JavaScript 全角转半角部分
Oct 28 #Javascript
js apply/call/caller/callee/bind使用方法与区别分析
Oct 28 #Javascript
javascript 时间比较实现代码
Oct 28 #Javascript
浅谈javascript 面向对象编程
Oct 28 #Javascript
小议javascript 设计模式 推荐
Oct 28 #Javascript
JavaScript 组件之旅(四):测试 JavaScript 组件
Oct 28 #Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
Oct 28 #Javascript
You might like
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
js倒计时抢购实例
2015/12/20 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
2017/06/12 Javascript
JS时间控制实现动态效果的实例讲解
2017/07/31 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
Node.js控制台彩色输出的方法与原理实例详解
2019/12/01 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
使用python分析git log日志示例
2014/02/27 Python
盘点提高 Python 代码效率的方法
2014/07/03 Python
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
解决TensorFlow程序无限制占用GPU的方法
2020/06/30 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
应届毕业生的个人自我鉴定
2013/10/24 职场文书
和平主题的演讲稿
2014/01/12 职场文书
公司会议开幕词
2015/01/29 职场文书
2015年护士医德医风自我评价
2015/03/03 职场文书
信仰纪录片观后感
2015/06/08 职场文书
公司人力资源管理制度
2015/08/05 职场文书
党性修养心得体会2016
2016/01/21 职场文书
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL