jQuery选择器
jQuery的一大优势就是强大的选择器,完全继承了CSS的风格
基本选择器
基本选择器是我们最常用的选择器,通过元素的 id,class,类名 来查找DOM元素
- $('test') 选取 id 为 test 的元素
- $(".test") 选取 class 为 test 的元素- $("p") 选取所有 p 元素
- $("")* 选取所有元素
- $("#test,.test,p") 返回元素的集合
层次选择器
通过DOM之间的层次关系来获取特定的元素,后代元素、子元素、相邻元素和同辈元素
- $("div span") 返回 div 里的 span 元素,所有后代元素中查找
- $("div >span") 返回 div 里的 span 子元素,直接子元素中查找
-
$("div +span") 返回 div 下一个span 同辈元素,可用next方法代替,
$("div").next("span")
; -
$("div ~ siblings") 返回 div 里的所有后代元素,可用nextAll方法代替,
$("div").nextAll("span")
;
过滤选择器
过滤选择器通过特定的过滤规则来筛选所需的DOM元素,过滤的规则与CSS伪类选择器方法相同。熟练的去使用过滤选择器,让我们在代码中避免了重复大量的代码。有很多需要注意的点,多一个空格的区别也是很大的。按照过滤规则分为以下
基本过滤选择器
基本过滤器在我们的运用中也是很广泛的,奇偶数能使我更加方便的去执行隔行操作,按照索引去选择,更加准确的定位,以及动态去对前部分或者后部分的元素执行操作
- :first 选取第一个元素,$("div:first") 第一个div元素- :last选取最后一个元素
- :not去除匹配元素
- :even 索引是偶数的,索引从零开始
- :odd索引是奇数的
- :eq(index) 索引是index的
- :gt(index) 索引大于index的
- :lt(index) 索引小于index的- :header 选取所有的标题元素 h1,h2...
- :animated 正在执行动画的元素
- :fcous当前获取焦点的元素
内容过滤选择器
规则主要体现在他所包含的子元素或者文本内容上
- :contains(text) 选取包含有文本内容 text 的元素
- :empty选取不包含子元素或者文本元素的空元素
- :has(selector)选取含有选择器所匹配的元素的元素(双重选择)
- :parent 选取包含子元素或者文本元素的空元素
可见性过滤
- :hidden 选取可见 的元素
-
:visable选取不可见的元素注意:选择器 :hidden 不仅仅包括样式属性display:none;,也包括文本隐藏域
<input type='hidden'>
和visibility:hidden 之类的元素
属性过滤器
- [attribute] 选取带有指定属性的元素
- [attribute=value] 选取带有指定属性和值的元素
- [attribute!=value] 选取不带有指定属性和值的元素- [attribute~=value] 选取属性值中包含指定词汇的元素
- [attribute|=value] 选取带有以指定值开头的属性值的元素,该值必须是整个单词。
- [attribute^=value] 匹配属性值以指定值开头的每个元素
- [attribute$=value] 匹配属性值以指定值结尾的每个元素
- [attribute=value]* 匹配属性值中包含指定值的每个元素####子元素过滤选择器
子元素过滤选择器
子元素过滤选择器的过滤规则相对于其他选择器稍微有点复杂,需要我们争取的去区分父元素和子元素
- :nth-child(index/even/odd/equation) 选取父元素下的第index个元素或者奇偶元素 (index从1算起),:eq(index)只匹配一个元素,:nth-child可以为每一个父元素匹配元素,index的起始值也不同
- :first-child 第一个
- :last-child 最后一个
- :only-child 唯一一个
表单对象属性过滤选择器
表单对象属性过滤选择器,顾名思义,是对所选择的表单元素进行过滤,在我们平时运用的还是很广泛的,去获取表单中被选中的个数和内容就变得更为方便
- :enabled 选取所有可用元素
- :disabled选取不可用的
- :checked选取被选中的元素(单选框、复选框)
- :selected选取被选中的元素(下拉框)
表单选择器
- :input 选 取所有输入框
- :text选取所有文本框
- :password选取所有密码框
- :radio选取所有单选框
- :checkbox 选取所有复选框
- :submit选取所有提交按钮
- :image选取所有图像按钮
- :reset选取所有重置按钮
- :button选取所有按钮
- :file选取所有上传域
- :hidden选取所有隐藏元素
选择器中的一些注意问题
1.选择器中的特殊符号
“·” 、“#”、“(”或“[”,W3C规定,属性值中是不能含有这些特殊字符的,如果实际项目中需要用到,就使用转义字符,转义
2.选择器中的空格
这也是很重要的一点,明明感觉自己写的对,为啥结果却不一样呢,检查一下是不是在不该有空格的地方出现了空格
eg:
var $t_a = $('.test :hidden'); //带空格的
//选取class为test元素里面的隐藏元素
var $t_a = $('.test:hidden'); //不带空格的
//选取class为test元素的隐藏元素
写在后面
这本书,用一章的篇幅去说选择器,这是我们入门jQuery的第一步,这篇文章,选择器是上周看的,这周相当于回顾一下,我并没有去写很多实例,一来是因为觉得有些没必要,二是因为懒~
选择器的目的是为了让我们更加简便的去选取元素,是把选择元素简单化,建议大家在使用的时候也去思考到这一点。
个人来说,这一章对我的收获是,扩展了自己对选择器的认识,避免了重复的操作,以及整个过一遍后,在使用中遇到自己想去选择的元素,能准确的去使用最简便的选择器。
后期的话如果有在选择器上遇到的问题,或者易犯的错误,我会在文章后追加。