CH03-JQuery过滤选择器

本章目标

  • 掌握基本过滤选择器的使用
  • 掌握可见性过滤选择器的使用
  • 掌握表单对象过滤器的使用

一、过滤选择器分类

1、什么是jQuery过滤选择器

  • 过滤选择器通过特定的过滤
  • 规则来筛选元素语法特点是使用“:”,如使用$(“li:first”)来选取第一个li元素

2、jQuery过滤选择器分类

  • 过滤选择器
    • 基本过滤选择器
    • 可见性过滤选择器
    • 表单对象过滤器

二、过滤选择器

1、基本过滤选择器

基本过滤选择器可以选取第一个元素、最后一个元素、索引为偶数或奇数的元素

基本过滤选择器案例的公用Html代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<style>
.one {
background-color:yellow;
}
.two {
color:blue;
/*bold跟font-weight配合使用*/
font-weight:bold;
}
.three {
background-color:yellowgreen;
/*斜体跟font-style配合使用*/
font-style:italic;
}
</style>
<h2 id="title">网络小说</h2>
<ul>
<li class="black">王妃不好当</li>
<li>致命交易</li>
<li class="blue">迦兰寺</li>
</ul>
<h2>畅销小说</h2>
<ul>
<li class="black">逆天之宠</li>
<li>交错时光的爱恋</li>
<li>张震鬼故事</li>
<li><h2>第一次亲密接触</h2></li>
</ul>

选取第一个元素

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//选取第一个元素添加类样式
$("li:first").addClass("one");
});
</script>

选取最后一个元素

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//选取最后一个元素添加样式
$("li:last").addClass("two");
});
</script>

选取索引为偶数的元素

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//选取索引为偶数的元素,jQuery集合都是从0开始索引 添加样式
$("li:even").addClass("three");
});
</script>

选取索引为奇数的元素

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//选取索引为奇数的元素 添加样式
$("li:odd").addClass("three");
});
</script>

基本过滤选择器可以根据索引的值选取元素

选取索引值等于3的元素

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//选取索引值等于3的元素添加样式
$("li:eq(3)").addClass("one");
});
</script>

选取索引值大于3的元素

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//选取索引值大于3的元素添加样式
$("li:gt(3)").addClass("two");
});
</script>

选取索引值小于3的元素

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//选取索引值小于3的元素添加样式
$("li:lt(3)").addClass("three");
});
</script>

基本过滤选择器可以选取子元素

为每个父级元素匹配第一个子元素

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//为每个父级元素匹配第一个子元素添加样式
$("li:first-child").addClass("one");
});
</script>

为每个父级元素匹配最后一个子元素

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//为每个父级元素匹配最后一个子元素添加样式
$("li:last-child").addClass("two");
});
</script>

匹配其父元素下的第2个子元素

nth-child从1开始计数

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//匹配其父元素下的第2个子元素 添加样式:nth-child从1开始计数
$("li:nth-child(2)").addClass("three");
});
</script>

基本过滤选择器还支持一些特殊的选择方式

2、可见性过滤选择器

可见性过滤选择器:可以通过元素显示状态来选取元素

例:点击hide按钮时:获取显示的p元素,使其隐藏

效果图:

1
2
3
4
5
6
7
8
9
10
11
12
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//点击hide按钮时:获取显示的<p>元素进行隐藏
$("#hide").click(function () {
$("p:visible").hide();
});
});
</script>
<p>点击按钮,我会隐身哦~</p>
<input id="hide" type="button" value="点击隐藏文字" />
<input id="show" type="button" value="点击显示文字" />

例:点击show按钮时:获取隐藏的p元素,使其显示

效果图:

1
2
3
4
5
6
7
8
9
10
11
12
13
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//点击查看获取到选中项弹出选中项的值
$("#select").click(function () {
var $sex = $("input:radio:checked").val();
alert($sex);
});
});
</script>
<p>点击按钮,我会隐身哦~</p>
<input id="hide" type="button" value="点击隐藏文字" />
<input id="show" type="button" value="点击显示文字" />

3、表单对象过滤器

例:点击查看弹出选择项的值

效果图:

1
2
3
4
5
6
7
8
9
10
11
12
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//点击hide按钮时:获取显示的<p>元素进行隐藏
$("#hide").click(function () {
$("p:visible").hide();
});
});
</script>
<input type="radio" name="sex" value="男" checked="checked" />
<input type="radio" name="sex" value="女" />
<input id="select" type="button" value="查看" />

注:选择器的书写规范很严格,多一个空格或少一个空格,都会影响选择器的效果

特殊符号的转义

选择器中的特殊符号需要转义,在如下html代码中

1
2
3
<div id="id#a">aa</div>

<div id="id[2]">cc</div>

获取这两个元素的选择器:使用双斜杠

三、课后作业

1.使用基本过滤选择器,完成如下表格的样式设置:

效果图:

2.使用jQuery完成伸缩菜单的显示隐藏:

效果图:

3.使用jQuery实现复选框的勾选功能:选中复选框后,背景颜色随之发生改变

效果图: