目录
1.jQuery选择器语法
jQuery选择器类似于CSS选择器,用来选取网页中的元素
$("h3").css("background","#09F");
获取并设置网页中所有h3标签背景色
“h3”为选择器语法,必须放在$()中
$(“h3”)返回jQuery对象
.css()是为jQuery对象设置样式的方法
2.jQuery选择器的种类
2.1通过CSS选择器选取元素
2.1.1基本选则器
先设置一个文档:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="one">杨幂</div>
<div id="one">迪丽热巴</div>
<div class="one">古力娜扎</div>
<span>李沁</span>
</body>
</html>
(1)标签选择器
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("div").css("background","yellow");
});
</script>
选择结果:
(2)类选择器
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$(".one").css("background","yellow");
});
</script>
选择结果:
(3)ID选择器
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("#one").css("background","yellow");
});
</script>
(4)并集选择器
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("#one,.one").css("background","yellow");
});
</script>
在选择器中同一个分号内用,隔开,多个选择器一起,称为并集选择器
(5)全局选择器
选择器为*,全局选择
2.1.2层次选择器
(1)后代选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div>杨幂</div>
<div>迪丽热巴</div>
<span><div>古力娜扎</div></span>
<p><div>李沁</div></p>
</div>
</body>
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("div div").css("background","yellow");
});
</script>
</html>
(2)子选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div>杨幂</div>
<div>迪丽热巴</div>
<span><div>古力娜扎</div></span>
<p><div>李沁</div></p>
</div>
</body>
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("div>div").css("background","yellow");
});
</script>
</html>
李沁被染色,说明其中<p>标签中不能包含<div>,会出错
(3)相邻元素选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div>杨幂</div>
<div>迪丽热巴</div>
<span>
23333333<div>古力娜扎</div>
</span>
<div>李沁</div>
</div>
</body>
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("div+span").css("background","yellow");
});
</script>
</html>
相邻元素的文本选择
(4)同辈元素选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div>杨幂</div>
<div>迪丽热巴</div>
<span>
23333333<div>古力娜扎</div>
</span>
<div>李沁</div>
</div>
<span>佟丽娅</span>
</body>
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("div~span").css("background","yellow");
});
</script>
</html>
2.1.3属性选择器
(1)[ ]包含,即属性为框内内容的选择器 [name] 属性值包含name的元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div id="one">杨幂</div>
<div>迪丽热巴</div>
<span id="two">
23333333<div>古力娜扎</div>
</span>
<div>李沁</div>
</div>
</body>
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("[id]").css("background","yellow");
});
</script>
</html>
(2)= 等值,属性值为xxx的 [id=33] 属性值为33的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div id="one">杨幂</div>
<div>迪丽热巴</div>
<span id="two">
23333333<div>古力娜扎</div>
</span>
<div>李沁</div>
</div>
</body>
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("[id=one]").css({"background":"yellow","color":"blue%","font-size":"200%"});
});
</script>
</html>
(3)^ 以。。。开头
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div name="abcdefg">杨幂</div>
<div name="gfedcba">迪丽热巴</div>
<div name="abc">李沁</div>
</div>
</body>
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("[name^=abc]").css({"background":"yellow","color":"blue%","font-size":"200%"});
});
</script>
</html>
(2)$ 以。。。结尾
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div name="abcdefg">杨幂</div>
<div name="gfedcba">迪丽热巴</div>
<div name="abc">李沁</div>
</div>
</body>
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("[name$=g]").css({"background":"yellow","color":"blue%","font-size":"200%"});
});
</script>
</html>
(5)* 属性中包含
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div name="abcdefg">杨幂</div>
<div name="gfedcba">迪丽热巴</div>
<div name="abc">李沁</div>
</div>
</body>
<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
$(function(){
$("[name*=d]").css({"background":"yellow","color":"blue%","font-size":"200%"});
});
</script>
</html>
2.2通过过滤选择器选择元素
2.2.1基本过滤选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<table>
<tr><td>杨幂</td></tr>
<tr><td>迪丽热巴</td></tr>
<tr><td>李沁</td></tr>
</table>
</div>
</body>
</html>
eq(index) 等于,第几个下标
<script>
$(function(){
$("tr:eq(2)").css({"background":"yellow","color":"blue%","font-size":"200%"});
});
</script>
gt(index) 大于 不包括本元素
<script>
$(function(){
$("tr:gt(0)").css({"background":"yellow","color":"blue%","font-size":"200%"});
});
</script>
lt(index) 小于,不包括本元素
<script>
$(function(){
$("tr:lt(2)").css({"background":"yellow","color":"blue%","font-size":"200%"});
});
</script>
三个不同基本过滤选择器结果:eq gt lt
2.2.2可见性过滤选则器
visible
hidden
实现点击隐藏和显示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<table>
<tr style="display: none"><td>明星一号:古力娜扎</td></tr>
<tr><td>明星二号:迪丽热巴</td></tr>
<input type="button" onclick="a()" value="显示">
<input type="button" onclick="b()" value="隐藏">
</table>
</body>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script>
function a(){
$("tr:hidden").css("display","block");
}
function b(){
$("tr:visible").css("display","none");
}
</script>
</html>
3.jQuery选择器常见问题
3.1特殊符号的转义
html场景:
<div id="id#a">aa</div>
<div id="id[2]">cc</div>
错误写法:
$("#id#a");
$("#id[2]");
正确写法:
$("#id\\#a");
$("#id\\[2\\]");
3.2选择器中的空格很严格(有无空格的区别)
选择器中的空格严格,添加空格带来不同的选择结果