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中的call实现继承
Jan 22 Javascript
用js解决数字不能换行问题
Aug 10 Javascript
js中判断文本框是否为空的两种方法
Jul 31 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
Nov 08 Javascript
window.addEventListener来解决让一个js事件执行多个函数
Dec 26 Javascript
浅析JavaScript中的typeof运算符
Nov 30 Javascript
Node.js操作Firebird数据库教程
Mar 04 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
详解Angular2响应式表单
Jun 14 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
Aug 24 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
Jan 12 Vue.js
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
PHP中list()函数用法实例简析
2016/01/08 PHP
tagName的使用,留一笔
2006/06/26 Javascript
JQuery CSS样式控制 学习笔记
2009/07/23 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
js实现使用鼠标拖拽切换图片的方法
2015/05/04 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
vue cli 3.0 使用全过程解析
2018/06/14 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
在Python中处理XML的教程
2015/04/29 Python
Django框架多表查询实例分析
2018/07/04 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
小学教育毕业生自荐信
2013/11/18 职场文书
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
外语系毕业生自荐信范文
2013/12/16 职场文书
幼儿园中班开学寄语
2014/04/03 职场文书
车辆工程专业求职信
2014/04/28 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
教师党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
企业员工辞职信范文
2015/05/12 职场文书
学籍证明模板
2015/06/18 职场文书