CH02-JQuery选择器

本章目标

  • 掌握基本选择器的使用
  • 掌握层次选择器的使用
  • 掌握属性选择器的使用

一、jQuery选择器

1、什么是jQuery选择器

jQuery选择器:类似于CSS选择器,用来选取网页中的元素发生的发生

例:设置网页中所有h3元素的背景

效果图:

1
2
3
4
5
6
7
8
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//设置所有h3元素的背影颜色
$("h3").css("background", "yellow");
});
</script>
<h3>请开始你的表演,因为我也要开始了</h3>

注:

  • “h3”为选择器
  • $(“h3”)返回jQuery对象
  • .css()是为jQuery对象设置样式的方法

2、jQuery选择器分类

jQuery选择器功能强大,种类也很多,分类如下:

  • 类CSS选择器
    • 基本选择器
    • 层次选择器
    • 属性选择器
  • 过滤选择器
    • 基本过滤选择器
    • 可见性过滤选择器

二、类CSS选择器

1、基本选择器

基本选择器包括:标签选择器、类选择器、ID选择器、并集选择器、交集选择器和全局选择器

基本选择器案例的公用html代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
<div>
<h2 class="title">游戏基地</h2>
<h3 class="title">游戏分类</h3>
<h3>热门排行</h3>
<dl id="box">
<dt>休闲游戏</dt>
<dd class="title">斗地主</dd>
<dd>QQ斗地主是国内同时在线人数最多的棋牌游戏....</dd>
</dl>
<ul>
<li>休闲游戏</li><li class="title">对战游戏</li><li>飞机游戏</li>
</ul>
</div>

标签选择器

根据给定的标签名匹配元素

例:设置所有h3元素的背景颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//设置h3元素的背影颜色
$("h3").css("background", "skyblue");
});
</script>

类选择器

根据给定的class匹配元素

例:设置所有class为title的元素的字体颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//设置指定class为title的元素设置字体颜色
$(".title").css("color", "red");
});
</script>

ID选择器

根据给定的id匹配元素

例:设置id为box的元素的背景颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//设置id为box的元素设置背景颜色
$("#box").css("background", "yellow");
});
</script>

并集选择器

用来合并元素集合

例:设置所有h2、dt、class为title的元素的背景颜色和字体颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//设置所有<h2>、<dt>、class为title的元素的背景颜色和字体颜色
$("h2,dt,.title").css("background", "pink").css("color", "white");
});
</script>

注:并集选择器表示满足一种条件即可,用逗号分割

交集选择器

可以对元素集合根据class或id再筛选

例:设置所有class为title的h3元素的背景颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//设置所有class为title的<h3>元素的背景颜色
$("h3.title").css("background", "purple");
});
</script>

注:交集选择器表示同时满足全部条件,没有分割

全局选择器

可以获取所有元素

例:改变所有元素的字体颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//设置所有元素的字体样式
$("*").css("color","red")
});
</script>

2、层次选择器

层次选择器通过DOM 元素之间的层次关系来获取元素,每个层级选择器都有一个参考节点。

层次选择器案例的公用html代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div id="root">
<h2>全部旅游产品分类</h2>
<dl>
<dt>名胜古迹</dt>
<dd>故宫</dd>
<dd>清华园</dd>
</dl>
<div id="menu">
<dl>
<dt>北京周边旅游<span>特价</span></dt>
<dd>按天数&nbsp;海边旅游&nbsp;草原</dd>
</dl>
</div>
<dl>
<dt>景点门票</dt>
<dd>名胜</dd>
<dd>山水</dd>
</dl>
<span>更多分类</span>
</div>

后代选择器

用来获取元素的后代元素

例:设置#root下的所有span元素的背景颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//设置id为root下的所有<span>元素的背景颜色
$("#root span").css("background", "yellow");
});
</script>

子选择器

用来获取元素的子元素

例:设置#root下的子元素span的背景颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//设置id为root下的子元素<span>的背景颜色
$("#root>span").css("background", "yellow");
});
</script>

相邻选择器

用来选取紧邻目标元素的下一个元素

例:设置紧接在h2元素后的dl元素的背景颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//设置紧接在<h2>元素后的<dl>元素的背景颜色
$("h2+dl").css("background", "yellow");
});
</script>

同辈选择器

用来选取目标元素之后的所有同辈元素

例:获取并设置h2元素之后的所有同辈元素dl的背景颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//获取并设置<h2>元素之后的所有同辈元素<dl>的背景颜色
$("h2~dl").css("background", "yellow");
});
</script>

注:相邻选择器和同辈选择器所选择到的元素,必须在同一个父元素下

3、属性选择器

属性选择器通过HTML元素的属性来选择元素

属性选择器案例的公用html代码:

1
2
3
4
5
6
7
8
9
10
11
12
<div id="box">
<h2 class="odds" title="cartoonlist">动画列表</h2>
<ul>
<li class="odds" title="kn_jp">名侦探柯南</li>
<li class="evens" title="hy_jp">火影忍者</li>
<li class="ok" title="ss_jp">死神</li>
<li class="evens" title="yj_jp">妖精的尾巴</li>
<li title="yh_jp">银魂</li>
<li class="ceo" title="hm_da">黑猫警长</li>
<li class="odds" title="xl_ds">仙履奇缘</li>
</ul>
</div>

根据属性名获取元素

例:改变含有title属性的h2元素的背景颜

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//改变含有title属性的<h2>元素的背景颜色
$("h2[title]").css("background", "green");
});
</script>

根据属性的值来选取元素

例:改变class属性的值为odds的li元素的背景颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//改变class属性的值为odds的<li>元素的背景颜色
$("li[class=odds]").css("background", "highlight");
});
</script>

例:改变class属性的值不为odds的li元素的背景颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//改变class属性的值不为odds的li元素的背景颜色设置h3元素的背影颜色
$("li[class!=odds]").css("background", "highlight");
});
</script>

根据属性名选取特定开始元素

例:以指定字符串开头

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//以指定字符串开头设置背景颜色
$("li[class^=o]").css("background", "highlight");
});
</script>

根据属性名选取特定结尾元素

例:以指定字符串结尾

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//以指定字符串结尾设置背景颜色
$("li[class$=o]").css("background", "green");
});
</script>

根据属性名选取包含某些值的元素

例:包含指定字符串

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//包含指定字符串设置背景颜色
$("li[class*=s]").css("background", "purple");
});
</script>

多属性条件复合查找元素

例:改变包含class属性,且title属性的值中含有y的li元素的背景颜色

效果图:

1
2
3
4
5
6
7
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//改变包含class属性,且title属性的值中含有y的<li>元素的背景颜色
$("li[class][title*=y]").css("background", "yellow");
});
</script>

Each方法

在jquery中一般使用each方法进行循环遍历

例:页面有多个 li 标签 ,这时可以用each来处理多个li

1
2
3
4
5
6
<ul>
<li>Html</li>
<li>Css</li>
<li>JavaScript</li>
<li>jQuery</li>
</ul>

输出每个列表项的下标和文本

效果图:

1
2
3
4
5
6
7
8
9
<script src="js/jquery.min.js"></script>
<script>
$(function() {
//循环遍历弹出每个列表项的下标和文本
$("li").each(function (i) {
alert(i +" "+ $(this).text());
});
});
</script>

三、课后作业

1.使用jQuery选择器完成开心餐厅的介绍页面

效果图:

2.使用jQuery选择器完成畅销书排行榜的页面

效果图: