jQuery选择器分类
jQuery选择器功能强大,种类也很多,分类如下
通过CSS选择器选取元素
基本选择器
层次选择器
属性选择器
通过过滤选择器选择元素
基本过滤选择器
可见性过滤选择器
基本选择器
基本选择器包括标签选择器、类选择器、ID选择器、并集选择器和全局选择器
名称 语法构成 描述 示例
标签选择器 element 根据给定的标签名匹配元素 $("h2"?)选取所有h2元素
类选择器 .class 根据给定的class匹配元素 $(" .title")选取所有class为title的元素
ID选择器 #id 根据给定的id匹配元素 $(" #title")选取id为title的元素
并集选择器 selector1,selector2,...,selectorN 将每一个选择器匹配的元素合并后一起返回 $("div,p,.title"?)选取所有div、p和拥有class为title的元素
全局选择器 * 匹配所有元素 $("*"?)选取所有元素
层次选择器
层次选择器通过DOM 元素之间的层次关系来获取元素
名称 语法构成 描述 示例
后代选择器 ancestor descendant 选取ancestor元素里的所有descendant(后代)元素 $("#menu span"?)选取#menu下的<span>元素
子选择器 parent>child 选取parent元素下的child(子)元素 $(" #menu>span"?)选取#menu的子元素<span>
相邻元素选择器 prev+next 选取紧邻prev元素之后的next元素 $(" h2+dl "?)选取紧邻<h2>元素之后的同辈元素<dl>
同辈元素选择器 prev~sibings 选取prev元素之后的所有siblings元素 $(" h2~dl "?)选取<h2>元素之后所有的同辈元素<dl>
属性选择器
属性选择器通过HTML元素的属性来选择元素
语法构成 描述 示例
[attribute] 选取包含给定属性的元素 $(" [href]"?)选取含有href属性的元素
[attribute=value] 选取等于给定属性是某个特定值的元素 $(" [href ='#']"?)选取href属性值为“#”的元素
[attribute?!=value] 选取不等于给定属性是某个特定值的元素 $(" [href?!='#']"?)选取href属性值不为“#”的元素
[attribute^=value] 选取给定属性是以某些特定值开始的元素 $(" [href^='en']"?)选取href属性值以en开头的元素
[attribute$=value] 选取给定属性是以某些特定值结尾的元素 $(" [href$='.jpg']"?)选取href属性值以.jpg结尾的元素
[attribute*=value] 选取给定属性是以包含某些值的元素 $(" [href* ='txt']"?)选取href属性值中含有txt的元素
过滤选择器
通过特定的过滤规则来筛选出所需的元素
主要分类
基本过滤选择器
可见性过滤选择器
表单对象过滤选择器
内容过滤选择器、子元素过滤选择器……
基本过滤选择器
:first 选取第一个元素 $(" li:first"?)选取所有<li>元素中的第一个<li>元素
:last 选取最后一个元素 $(" li:last"?)选取所有<li>元素中的最后一个<li>元素
:not(selector) 选取去除所有与给定选择器匹配的元素 $(" li:not(.three)" )选取class不是three的元素
:even 选取索引是偶数的所有元素(index从0开始) $(" li:even"?)选取索引是偶数的所有<li>元素
:odd 选取索引是奇数的所有元素(index从0开始) $(" li:odd"?)选取索引是奇数的所有<li>元素
:eq(index) 选取索引等于index的元素(index从0开始) $("li:eq(1)"?)选取索引等于1的<li>元素
:gt(index) 选取索引大于index的元素(index从0开始) $(" li:gt(1)"?)选取索引大于1的<li>元素(注:大于1,不包括1)
:lt(index) 选取索引小于index的元素(index从0开始) $(“li:lt(1)”?)选取索引小于1的<li>元素(注:小于1,不包括1)
:header 选取所有标题元素,如h1~h6 $(":header"?)选取网页中所有标题元素
:focus 选取当前获取焦点的元素 $(":focus"?)选取当前获取焦点的元素
:animated 选择所有动画 $(":animated" )选取当前所有动画元素
可见性过滤选择器
通过元素显示状态来选取元素
语法 描述 示例
:visible 选取所有可见的元素 $(":visible"?)选取所有可见的元素
:hidden 选取所有隐藏的元素 $(":hidden"?) 选取所有隐藏的元素
jQuery选择器注意事项
特殊符号的转义
<div id="id#a">aa</div>
<div id="id[2]">cc</div>
获取这两个元素的选择器
$("#id\\#a");
$("#id\\[2\\]");
选择器中的空格
选择器的书写规范很严格,多一个空格或少一个空格,都会影响选择器的效果
var $t_a = $(".test :hidden"); //带空格的jQuery选择器 选取class为“test”的元素内部的隐藏元素
var $t_b = $(".test:hidden"); //不带空格的jQuery选择器 选取隐藏的class为“test”的元素