jQuery选择器支持CSS1、CSS2的全部和部分CSS3选择器,同时也拥有少量独有的选择器。jQueryt选择器分为基本选择器、层次选择器、过滤选择器和表单选择器。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jQuery selector</title>
<script type="text/javascript" src="jQuery/jquery-3.1.0.js"></script>
<style type="text/css">
div, span, p{
width:140px;
height: 140px;
margin: 5px;
background-color: #aaa;
border: #000 1px solid;
float: left;
font-size: 17px;
font-family: Verdana;
}
div.mini{
width: 55px;
height: 55px;
background-color: #aaa;
font-size: 12px;
}
div.hide{
display : none;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
});
</script>
</head>
<body>
<h1>选择器</h1>
<div class="one" id="one">
id为one,class为one的div
<div class="mini">class为mini</div>
</div>
<div class="two" id="two" title="test">
id为tow,class为one,title为test的div
<div class="mini" title="other">class为mini,title为other</div>
<div class="mini" title="test">class为mini,title为test</div>
</div>
<div class="one">
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini"></div>
</div>
<div class="one">
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini">class为mini</div>
<div class="mini" title="test">class为mini,title为test</div>
</div>
<div style="display:none" class="one">
style的display为"one"的div
</div>
<div class="hide">class为hide的div</div>
<div>
包含input的type为"hidden"的div<input type="hidden" size="8" />
</div>
<span id="mover">正在执行动画的span</span>
</body>
</html>
基本选择器
下面讲各个选择器,并写出示例代码,添加到ready函数中并在浏览器中看看效果。
id选择器:$("#test"),选取id为test的元素,返回单个元素
$("#one").css("background", "#bbffaa");//改变id为one的元素的背景色
.class选择器:$(".test")选取所有class为test的元素,返回集合元素
$(".mini").css("background", "#bbffaa");//改变class为mini的所有元素的背景色
element选择器:$(“p”),选取所有的
元素,返回集合元素
$("div").css("background", "#bbffaa");//改变元素名为<div>的所有元素的背景色
选择器:$(""),选择所有元素,返回集合元素
$("*").css("background", "#bbffaa");//改变所有元素的背景色
selector1,selector2,…,selectorN选择器:$(“div,span,p.myClass”)选取所有
标签的一组元素,返回集合元素
$("span, #two").css("background", "#bbffaa");//改变所有的<span>元素和id为two的元素的背景色
层次选择器
如果想通过DOM元素之间的层次关系来获取特定的元素,例如后代元素、子元素、相邻元素和同辈元素等,那么层次选择器是一个非常好的选择。
$(“ancestor descendent”),选取ancestor元素里的所有descendent(后代)元素,返回集合元素
$("body div").css("background", "#bbffaa");//改变body内所有div元素的背景色
$(“parent>child”),选取parent元素下的child(子)元素,与前一个选择器有区别,前一个选择器选择的是后代元素,返回集合元素
$("body > div").css("background", "#bbffaa");//改变body内子<div>元素的背景色
$(“prev + next”),选取紧接在prev元素后的next元素,返回集合元素
$(".one + div").css("background", "#bbffaa");//改变class为one的下一同辈<div>元素的背景色
$(“prev~siblings”),选取prev元素之后的所有silibings元素,返回集合元素
$("#two ~ div").css("background", "#bbffaa");//改变id为two元素之后所有同辈元div元素的背景色
在层次选择器中,第1、2个选择器比较常用,面后面2个因为在jQuery里可以使用更简单的方法替代,比较少用。 ( " . o n e + d i v " ) 与 (".one + div")与 (".one+div")与(".one").next(“div”)等价;KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲prev ~ div")与("#prev").nextAll(“div”);等价
过滤选择器
过滤选择器可以分为基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤和表单对象属性过滤选择器
基本过滤
:first,选取第1个元素,返回单个元素
$("div:first").css("background", "#bbffaa");//改变第一个div元素的背景色
:last,选取最后一个元素,返回单个元素
$("div:last").css("background", "#bbffaa");//改变 变最一一个div元素的背景色
表单选择器
:input 选取所有的,,,元素
:text 先取所有单行文本框
:password 选取所有密码框
:radio 选取所有单选框
:checkbox 选取所有多选框
:submit 选取所有拉交按钮
:image 选取所有的图像按钮
:reset 选取所有的重置按钮
:button 选取所有的按钮
:file 选取所有上传域
:hidden 选取所有不可见的元素(已经在不可见性过滤选择器中讲过)