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 事件流和事件绑定
Jul 16 Javascript
jquery异步请求实例代码
Jun 21 Javascript
javascript自定义startWith()和endWith()的两种方法
Nov 11 Javascript
JavaScript+CSS控制打印格式示例介绍
Jan 07 Javascript
浅谈jQuery事件绑定原理
Jan 02 Javascript
javascript实现倒计时(精确到秒)
Jun 26 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
Jan 23 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
Jun 25 Javascript
JS中利用FileReader实现上传图片前本地预览功能
Mar 02 Javascript
JS中Promise函数then的奥秘探究
Jul 30 Javascript
Vue插件打包与发布的方法示例
Aug 20 Javascript
vuex实现数据状态持久化
Nov 11 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
php简单封装了一些常用JS操作
2007/02/25 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
2010/02/15 Javascript
基于jquery的15款幻灯片插件
2011/04/10 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
python使用Tkinter显示网络图片的方法
2015/04/24 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
Python访问MongoDB,并且转换成Dataframe的方法
2018/10/15 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
Python调用飞书发送消息的示例
2020/11/10 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
英国家庭家具、照明和花园家具购物网站:Furniture123
2018/12/31 全球购物
会计岗位描述
2014/02/22 职场文书
房地产促销活动方案
2014/03/01 职场文书
平安建设汇报材料
2014/12/29 职场文书
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL