精通jQuery选择器
虽然jQuery上手简单,相比于其他库学习起来较为简单,但是要全面掌握,却不轻松。因为它涉及到网页开发的方方面面,提供的方法和内部变化有上千种之多。初学者常常感到,入门很方便,提高很困难。本文的目标是将jQuery选择器做一个系统的梳理,试图理清jQuery的设计思想,找出学习的脉络,使读者从入门到精通。
jQuery是什么
简单的说,jQuery是一个JavaScript框架,它的宗旨是:写更少的代码,做更多的事情。对于Web开发人员而言,jQuery是一个功能强大的JavaScript库,能更加快速开发相关应用,例如AJAX交互,JavaScript动画效果等。对于Web设计师而言,jQuery封装了Javascript源码细节,实现了与HTML标签的有效分离,便于设计师更加专注于Web页面设计效果。基于此,网页的用户体验大大增强,包括网页的交互性,视觉效果等等。
jQuery的核心设计思想是:选择某个网页元素,然后对其进行某种操作。那么如何选择、定位某个网页元素呢?对于JavaScript开发人员而言,通常的一种手段是document.getElementById()。而在jQuery语法中,使用的是美元符号“$”,等价的选择表达式写法为:
jQuery之所以称之为“jQuery”,主要就是因为它强大的选择器,也就是Javascript Query的意思。下面,我们具体介绍jQuery选择器相关的设计思想:
一、jQuery基本选择器
前面提到,选择器是jQuery的特色。jQuery的基本选择器主要分为tb以下五种类型:
1. $(“#myId”) // 选择ID为myId的网页元素
2. $(“标签名”) // 例如$(“div”)获取的就是HTML文档中的所有的div元素的jQuery对象集合
3. $(“.myClass”) // 获取的是HTML文档中所有的class为“myClass”的元素集合
4. $(“*”) // 这个获取的是HTML文档中的所有的元素
5. $(“selector1,selector2,selector3…selectorN “) // 这种选择器叫做组选择器。例如:$(“span,#two”)
// 选取所有的span标签元素和id=two的元素。
二、jQuery层次选择器
无论何时,通过jQuery选择器获取的jQuery对象任何时候都是一组元素。jQuery的层次选择器主要分为以下两种类型:
1. $(“ancestor descendant”):选取parent元素后所有的child元素。ancestor的中文意思是“祖先”,descendant的中文意思是“后代”。例如:
$(“body div”) 选取body元素下所有的div元素。
$(“div#test div”) 选取id为“test”的div所包含的所有的div子元素
2. $(“parent > child”):选取parent元素后所有的第一个child元素。例如:
$(“body > div”) 选取body元素下所有的第一级div元素。
$(“div#test > div”) 选取id为“test”的div所包含的所有的第一级div子元素
三、jQuery过滤选择器
jQuery最基本过滤选择器包括:
1. :first // 选取第一个元素。$(“div:first”)选取所有div元素中的第一个div元素
2. :last // 选取最后一个元素。$(“div:last”)选取所有div元素中的最后一个div元素
3. :even // 选取索引是偶数的所有元素。$(“input:even”)选取索引是偶数的input元素。
4. :odd // 选取索引是奇数的所有元素。$(“input:odd”)选取索引是奇数的input元素。
5. :eq(index) // 选取索引等于index的元素。$(“input:eq(1)”)选取索引等于1的input元素。
6. :gt(index) // 选取索引大于index的元素。$(“input:gt(1)”)选取索引大于1的input元素。
7. :lt(index) // 选取索引小于index的元素。$(“input:lt(3)”)选取索引小于3的input元素。
jQuery内容过滤选择器,可以轻松地对DOM文档中的文本内容进行筛选,从而准确地选取我们所需要的元素。
1. :contains(text) // 选取含有文本内容为“text”元素。$(“div:contains(‘你’)”)选取含有文本“你”的div元素。
2. :empty // 选取不包含子元素和文本的空元素。$(“div:empty”)选取不包含子元素(包括文本元素)的div空元素。
3. :parent // 选取含有子元素或者文本的元素。$(“div:parent”)选取拥有子元素(包括文本元素)的div元素。
可以看见,jQuery内容过滤选择器的过滤规则主要体现在它所包含的子元素或文本内容上。
jQuery可见性过滤选择器的用法如下:
1. :hidden // 选取所有不可见的元素。$(“:hidden”)选取网页中所有不可见的元素。
2. :visible // 选取所有可见元素。$(“div:visible”)选取所有可见的div元素。
jQuery属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素。
1. [attribute] // 选择拥有此属性的元素。$(“div[id]“)选取拥有属性id的元素。
2. [attribute=value] // 选取属性值为value的元素。$(“div[name=test]“)选取属性name的值为“test”的div元素。
3. [attribute!value] // 选取属性值不等于value的元素。
4.[attribute^=value] // 选取属性的值以value开始的元素。
5. [attribute$=value] // 选取属性的值以value为结束的元素。
6. [attribute*=value] // 选取属性的值含有value的元素。
7. [selector1] [selector2] [selectorN] //复合属性选择器。$(“div[id][name*=test]“)选取拥有属性id,且属性name的值含有“test”的div元素
jQuery子元素过滤选择器的过滤规则相对于其它的选择器稍微有些复杂。
1. :nth-child(index/even/odd/equation) // 选取每个父元素下的第index个子元素或者奇偶元素。
2. :first-child // 选取每个父元素的第一个子元素
3. :last-child // 选取每个父元素的最后一个子元素
jQuery表单对象属性过滤选择器主要是对所选择的表单元素进行过滤,例如选择不可用的表单元素、被选中的下拉框、多选框等等。
1. :enabled // 选取所有可用的表单元素。$(“#form1 :enabled”)选取id为“form1”的表单内的所有可用元素。
2. :disabled // 选取所有不可用的表单元素。
3. :checked // 选取所有被选中的元素。$(“input:checked”)选取所有被选中的元素。
4. :selected // 选取所有被选中的选项元素。$(“select :selected”)选取所有被选中的选项元素(option)。
jQuery中引入了表单选择器,让我们能极其方便地获取到一个表单中的某个或某类型的元素。
from:http://blog.csdn.net/heirenheiren/article/details/7863693
精通jQuery选择器的更多相关文章
- JQuery 选择器
选择器是JQuery的根基,在JQuery中,对事件的处理,遍历DOM和AJAX操作都依赖于选择器.如果能够熟练地使用选择器,不仅能简化代码,而且还可以事半功倍. JQuery选择器的优势 1.简洁的 ...
- jQuery的案例及必知重要的jQuery选择器
Jquery能做什么 访问和操作DOM元素 控制页面样式 对页面事件进行处理 扩展新的jQuery插件 与Ajax技术完美结合 Jquery的优势 体积小,压缩后只有100KB左右 l强大的选择器 出 ...
- 深入学习jQuery选择器系列第一篇——基础选择器和层级选择器
× 目录 [1]id选择器 [2]元素选择器 [3]类选择器[4]通配选择器[5]群组选择器[6]后代选择器[7]兄弟选择器 前面的话 选择器是jQuery的根基,在jQuery中,对事件处理.遍历D ...
- jQuery选择器和选取方法 http://www.cnblogs.com/MaxIE/p/4078869.html
我们已经使用了带有简单Css选择器的jQuery选取函数:$().现在是时候深入了解jQuery选择器语法,以及一些提取和扩充选中元素集的方法了. 一.jQuery选择器 在CSS3选择器标淮草案定义 ...
- 《锋利的jQuery(第2版)》笔记-第2章-jQuery选择器
选择器是jQuery的根基,在jQuery中,对事件处理.遍历DOM和Ajax操作都依赖于选择器.熟练使用选择器,不仅可以简化代码,而且可以达到事半功倍的效果. 2.1 jQuery选择器是什么 1. ...
- 深入学习jQuery选择器系列第八篇——过滤选择器之伪子元素选择器
× 目录 [1]通用形式 [2]反向形式 [3]首尾元素 [4]唯一元素 前面的话 本文是子元素选择器的续篇,主要介绍关于nth-of-type()选择器的内容.该部分内容并非没有出现在<锋利的 ...
- 深入学习jQuery选择器系列第四篇——过滤选择器之属性选择器
× 目录 [1]简单属性 [2]具体属性 [3]条件属性 前面的话 属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素,对应于CSS中的属性选择器.属性过滤选择器可分为简单属性选择器.具体属性选 ...
- 深入学习jQuery选择器系列第二篇——过滤选择器之子元素选择器
× 目录 [1]通用形式 [2]反向形式 [3]首尾元素 [4]唯一元素 前面的话 在上一篇中已经介绍过基础选择器和层级选择器,本文开始介绍过滤选择器.过滤选择器是jQuery选择器中最为庞大也是最为 ...
- jQuery-1.9.1源码分析系列(二)jQuery选择器
1.选择器结构 jQuery的选择器根据源码可以分为几块 init: function( selector, context, rootjQuery ) { ... // HANDLE: $(&quo ...
随机推荐
- IOS开发之功能模块--给任意的UIView添加点击事件
前言:好久没写博客,今天来一波.我在实际项目开发中,会遇到这样功能需求:我已经搭好了iOS的UI界面,但是很多界面的子View用了UIView,然后这些UIView中用了UILabel和UIImage ...
- 关于Storyboard的使用
前言:说起来码龄很久似的,但是还是有很多基础的知识都不知道,比如下面介绍的关于Stroyboard的使用.(本篇博文随笔会不断补充关于Storyboard的使用技巧,持续更新) 目录: 1.使用Str ...
- 学习Entity Framework 中的Code First
这是上周就写好的文章,是在公司浩哥的建议下写的,本来是部门里面分享求创新用的,这里贴出来分享给大家. 最近在对MVC的学习过程中,接触到了Code First这种新的设计模式,感觉很新颖,并且也体验到 ...
- 理解TCP三次握手/四次断开的必要性
1 TCP的三次握手与必要性 (1)三次握手图 (2)必要性:TCP通过三次握手建立可靠的(确保收到)的全双工通信. 1)第一次握手和第二次握手(ACK部分)建立了从客户端到服务器传送数据的可靠连接: ...
- Hadoop HDFS Basic JAVA API
org.apache.hadoop.fs.FileSystem 是HDFS的文件系统抽象,在分布式系统中管理HDFS文件和目录.文件内容存储在由多个相同大小的块(如64M)构成的datanode节 ...
- 讲讲js中的逻辑与(&&)以及逻辑或(||)
前几天看到一个函数,百思不得其解,今天早上醒来看了本js的书,正好讲到操作符的用法,给大家分享下js中的&&,||,和我们用的其他的编程语言还是有点区别的. 直接上那个函数的代码: f ...
- 报表开发工具中开放的部分图表js接口列表
1.. 描述 报表开发工具FineReport 8.0版本中开放了部分图表js接口,在具体应用的过程中很多人都不知道这些接口到底有什么作用,该怎么应用,所以根据我自己的应用在下面归纳了这些新开放js接 ...
- 连载《一个程序猿的生命周期》-28、被忽悠来的单身HR(女同志)
一个程序猿的生命周期 微信平台 口 号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103 微 博:h ...
- 手机打开PDF文档中文英文支持(乱码问题)解决攻略
电子书的优点很多,随时随地阅读,无论白天黑夜走路坐车都能阅读:想确认一下某句话是不是这本书里的,搜索一下就可以知道:搬家也不用发愁,几万本书带在身上,依然轻松步行.我买了一台平板主要动因就是为了看书, ...
- 【温故而知新-Javascript】使用 Ajax(续)
1. 准备向服务器发送数据 Ajax 最常见的一大用途是向服务器发送数据.最典型的情况是从 客户端发送表单数据,即用户在form元素所含的各个 input 元素里输入的值.下面代码展示了一张简单的表单 ...