jQuery选择器

基本选择器,层次选择器,过滤选择器,表单选择器

基本选择器

最简单的选择器,通过元素id、class和标签名等来查找DOM元素

层次选择器

如果想通过DOM元素之间的层次关系来获取特定元素,例如后代元素、子元素、相邻元素和同辈元素等,那么层次选择器是一个很好的选择。

选择器 描述
$("ancestor descendant") 选取ancestor元素里的所有descendant(后代)元素
$("parent > child")

选取parent元素下的child(子)元素,

$("ancestor descendant")有区别,

$("ancestor descendant")选择的是后代元素

$("prev + next") 选取紧接在prev元素后的next元素
$("prev~siblings") 选取prev元素之后的所有siblings元素

 

 

过滤选择器

基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤和表单对象属性过滤选择器。

基本过滤选择器

选择器 描述
:first 选取第一个元素
:last 选取最后一个元素
:not(selector) 去除所有与给定选择器不匹配的元素
:even 选取索引是偶数的所有元素,索引从0开始
:odd 选取索引是奇数的所有元素,索引从0开始
:eq(index) 选取索引等于index的元素(index从0开始)
:gt(index) 选取索引大于index的元素(index从0开始)
:lt(index)  选取索引小于index的元素(index从0开始)
 :header  选取所有的标题元素,例如h1,h2,h3等等
 :animated  选取当前正在执行动画的所有元素
 :focus  选取当前获取焦点的元素

 

 

 

 

内容过滤选择器

内容过滤选择器的过滤规则主要体现在它所包含的子元素或文本内容上。

选择器 描述
:contains(text) 选取含有文本内容为"text"的元素
:empty 选取不包含子元素或者文本的空元素
:has(selector) 选取含有选择器所匹配的元素的元素
:parent 选取含有子元素或文本的元素

 

可见性过滤选择器

 :hidden  选取所有不可见的元素;

 :visible    选取所有可见的元素;

属性过滤选择器

选择器 描述
[attribute] 选取拥有此属性的元素
[attribute=value] 选取属性的值为value的元素
[attribute!=value] 选取属性的值不等于value的元素
[attribute^=value] 选取属性的值以value开始的元素
[attribute$=value] 选取属性的值以value结束的元素
[attribute*=value] 选取属性的值包含value的元素
[attribute|=value] 选取属性等于给定字符串或以该字符串为前缀(该字符串后跟一个连字符"-")的元素
[attribute~=value] 选取属性用空格分隔的值中包含一个给定值的元素
[attribute1][attribute2][attributeN] 用属性选择器合并成一个复合属性选择器,满足多个条件。每选择一次,缩小一次范围

 

子元素过滤选择器

选择器 描述
:nth-child(index/even/odd/equation) 选取每个父元素下的第index个子元素或者奇偶元素(index从1算起)
:first-child 选取每个父元素下的第一个子元素
:last-child 选取每个父元素下的最后一个子元素
:only-child 如果某个元素是它父元素中唯一的子元素,那么将会被匹配。如果父元素中含有其他元素,则不会被匹配

 

表单对象属性过滤选择器

:enabled   选取所有可用元素

:disabled  选取所有不可用元素

:checked   选取所有被选中的元素(单选框,复选框)

:selected   选取所有被选中的选项元素(下拉列表)

表单选择器

选择器 描述
:input 选取所有的<input>、<textarea>、<select>和<button>元素
:text 选取所有的单行文本框
:password 选取所有的密码框
:radio 选取所有的单选框
:checkbox 选取所有的复选框
:submit 选取所有的提交按钮
:image 选取所有的图像按钮
:reset 选取所有的重置按钮
:button 选取所有的按钮
:file 选取所有的上传域
:hidden 选取所有不可见元素

选择器中的一些注意事项

1,选择器中含有"."、"#"、"("或"]"等特殊字符

如果按照普通方式去处理就会出错,解决此类错误的方法是使用转义符转义

2.属性选择器的@符号问题

在jquery升级版本过程中,jquery在1.3.1版本中彻底放弃了1.1.0版本遗留下来的@符号,假如你使用1.3.1以上的版本,那么你不需要在属性前添加@符号

3,选择器中有空格的注意事项

var $t_a = $(".test :hidden");            //选取class为"test"的元素里面的隐藏元素

var $t_b = $(".test:hidden");            //选取隐藏的class为"test"的元素

两者子所以不同,是因为后台选择器与过滤选择器的不同

参考文献:

《锋利的jQuery》  第2版  第二章

<!--

作者:纤锐
出处:http://www.cnblogs.com/beginner2014/p/4443472.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。谢谢合作。

-->

原文地址:https://www.cnblogs.com/beginner2014/p/4443472.html