名称 | 说明 | 举例 |
#id | 根据元素Id选择 | $("divId") 选择ID为divId的元素 |
element | 根据元素的名称选择, | $("a") 选择所有<a>元素 |
.class | 根据元素的css类选择 | $(".bgRed") 选择所用CSS类为bgRed的元素 |
* | 选择所有元素 | $("*")选择页面所有元素 |
selector1, selector2, selectorN |
可以将几个选择器用","分隔开然后再拼成一个选择器字符串.会同时选中这几个选择器匹配的内容. | $("#divId, a, .bgRed") |
[学习建议]: 大家暂时记住基础选择器即可, 可以直接跳到下一节"jQuery选择器实验室"进行动手练习, 以后再回来慢慢学习全部的选择器, 或者用到的时候再回来查询.
名称 | 说明 | 举例 |
ancestor descendant | 使用"form input"的形式选中form中的所有input元素.即ancestor(祖先)为from, descendant(子孙)为input. | $(".bgRed div") 选择CSS类为bgRed的元素中的所有<div>元素. |
parent > child | 选择parent的直接子节点child. child必须包含在parent中并且父类是parent元素. | $(".myList>li") 选择CSS类为myList元素中的直接子节点<li>对象. |
prev + next | prev和next是两个同级别的元素. 选中在prev元素后面的next元素. | $("#hibiscus+img")选在id为hibiscus元素后面的img对象. |
prev ~ siblings | 选择prev后面的根据siblings过滤的元素 注:siblings是过滤器 |
$("#someDiv~[title]")选择id为someDiv的对象后面所有带有title属性的元素 |
2.1 ancestor descendant :父子级关系
派生选择器
$(“#bread .milk”)
<divid=bread><input class=milk><spanclass=milk>
<div><p class=milk></div>
</div>
在指定的父级选择器下边获得全部的派生子级(后代)元素
2.2 parent > child :父子级关系
在给定的父元素下匹配所有子元素.
$(“#bread >.milk”)
<divid=bread><input class=milk><spanclass=milk>
<div><pclass=milk></div>
</div>
2.3 prev + next :兄弟级关系
匹配紧接在 所有prev 元素后的 next(下一个) 元素
$(“#bread + .milk”)
<divid=bread><span class=milk></span></div>
<p class=milk></p>
<spanclass=milk></span>
2.4 prev ~ siblings:兄弟级关系
匹配 prev 元素之后的所有 siblings 元素.
$(“#bread ~ .milk”)
<span class=milk>
<divid=bread><span class=milk></span></div>
<p class=milk></p>
<span class=milk></span>
<inputclass=milk />
名称 | 说明 | 举例 |
:first | 匹配找到的第一个元素 | 查找表格的第一行:$("tr:first") |
:last | 匹配找到的最后一个元素 | 查找表格的最后一行:$("tr:last") |
:not(selector) | 去除所有与给定选择器匹配的元素 | 查找所有未选中的 input 元素: $("input:not(:checked)") |
:even | 匹配所有索引值为偶数的元素,从 0 开始计数 | 查找表格的1、3、5...行:$("tr:even") |
:odd | 匹配所有索引值为奇数的元素,从 0 开始计数 | 查找表格的2、4、6行:$("tr:odd") |
:eq(index) | 匹配一个给定索引值的元素 注:index从 0 开始计数 |
查找第二行:$("tr:eq(1)") |
:gt(index) | 匹配所有大于给定索引值的元素 注:index从 0 开始计数 |
查找第二第三行,即索引值是1和2,也就是比0大:$("tr:gt(0)") |
:lt(index) | 选择结果集中索引小于 N 的 elements 注:index从 0 开始计数 |
查找第一第二行,即索引值是0和1,也就是比2小:$("tr:lt(2)") |
:header | 选择所有h1,h2,h3一类的header标签. | 给页面内所有标题加上背景色: $(":header").css("background", "#EEE"); |
:animated | 匹配所有正在执行动画效果的元素 | 只有对不在执行动画效果的元素执行一个动画特效: $("#run").click(function(){ |
名称 | 说明 | 举例 |
:contains(text) | 匹配包含给定文本的元素 | 查找所有包含 "John" 的 div 元素:$("div:contains('John')") |
:empty | 匹配所有不包含子元素或者文本的空元素 | 查找所有不包含子元素或者文本的空元素:$("td:empty") |
:has(selector) | 匹配含有选择器所匹配的元素的元素 | 给所有包含 p 元素的 div 元素添加一个 text 类: $("div:has(p)").addClass("test"); |
:parent | 匹配含有子元素或者文本的元素 | 查找所有含有子元素或者文本的 td 元素:$("td:parent") |
实例:
4.1 :contains(text)
用法: $(”div:contains(’John’)”)
匹配包含给定文本的元素
<div>this is computer</div>
<div>I amJohn</div>
4.2 :empty
用法: $(”div:empty”)
匹配所有不包含子元素或者文本的空元素
<div>I am John</div>
<div></div>
<div><span></div>
<div> </div>
<div>bread</div>
4.3 :has(selector)
用法: $(”div:has(.milk)”)
匹配含有选择器所匹配的元素的元素
<div></div>
<div><pclass=”milk”></div>
<div><spanclass=”milk”></div>
4.4 :parent
用法: $(”p:parent”)
匹配含有子元素或者文本的元素(元素必须有后代)
<p></p>
<p><span></p>
<p>hello</p>
<p> </p>
名称 | 说明 | 举例 |
:hidden |
匹配所有的不可见元素 注:在1.3.2版本中, hidden匹配自身或者父类在文档中不占用空间的元素.如果使用CSS visibility属性让其不显示但是占位,则不输入hidden. |
查找所有不可见的 tr 元素:$("tr:hidden") |
:visible | 匹配所有的可见元素 | 查找所有可见的 tr 元素:$("tr:visible") |
元素是隐藏的:
display:none; 隐藏(不会占据物理空间)
<input type=”hidden”>隐藏域
visibility:hidden 隐藏(要占据物理空间)
:hidden 获得隐藏元素(display input type=hidden)有两种情况会起作用
:visible获得可见元素
总结
1.基本选择(id class tag标签 sel1,sel2,sel3联合 *)
2. 层次选择器
3. 简单过滤选择器(:first :last :eq(下标) :gt() :lt() :odd :even)
4. 内容过滤选择器(:contains :has :empty :parent)
5. 可见性过滤选择器(:hidden :visible)