Jquery_02

jQuery的选择器

回顾

  • 使用jQuery的如何实现隔行变色效果?
  • $(文件)。就绪()与在window.onload有什么区别?
  • 如何实现DOM对象和jQuery的对象间的转化?

本章目标

  • 会使用基本选择器获取元素 重点
  • 会使用层次选择器获取元素 重点
  • 会使用属性选择器获取元素重点
  • 会使用基本过滤选择器获取元素重点
  • 会使用可见性过滤选择器获取元素重点

jQuery的选择器

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

$("h3").css("background","#09F");
  • 获取并设置网页中所有“<H3>”元素的背景
  • “H3”为选择器语法,必须放在$()中
  • $(“H3”)返回jQuery的对象
  • 的CSS()是为jQuery的对象设置样式的方法

jQuery的选择器分类

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

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

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

名称语法构成描述示例
标签选择器元件根据给定的标签名匹配元素$(“h2”)选取所有h2元素
类选择器。类根据给定的类匹配元素$(“。title”)选取所有类为title的元素
ID选择器#ID根据给定的ID匹配元素$(“#title”)选取id为title的元素
并集选择器selector1,选择器2,...,选择器N将每一个选择器匹配的元素合并后一起返回$(“div,p,.title”)选取所有div,p和拥有类为title的元素
标签选择器

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

$("h3").css("background","#09F") // 获取并设置所有<h3>元素的背景颜色

20171218195238

类选择器

类选择器根据给定的类匹配元素

$(".title").css("background","#09F") // 获取并设置所有class为title的元素的背景颜色

20171218195435

ID选择器

ID选择器根据给定的ID匹配元素

$("#box").css("background","#09F") // 获取并设置id为box的元素的背景颜色

20171218195626

并集选择器

并集选择器用来合并元素集合

$("h2,dt,.title").css("background","#09F"); //获取并设置所有<h2>、<dt>、class为title的元素的背景颜色

20171218195909

交集选择器

交集选择器可以对元素集合根据类或ID再筛选

$("h2.title").css("background","#09F"); // 获取并设置所有class为title的<h2>元素的背景颜色

20171218200326

全局选择器

全局选择器可以获取所有元素

$("*").css("color","red"); // 改变所有元素的字体颜色

20171218212316

层次选择器

层次选择器通过DOM元素之间的层次关系来获取元素

名称语法构成描述示例
后代选择器祖先后裔选取ancestor元素里的所有descendant(后代)元素$("#menu span" )选取#menu下的<span>元素
子选择器parent>child选取parent元素下的child(子)元素$(" #menu>span" )选取#menu的子元素<span>
相邻元素选择器prev+next选取紧邻prev元素之后的next元素$(" h2+dl " )选取紧邻<h2>元素之后的同辈元素<dl>
同辈元素选择器prev~sibings选取prev元素之后的所有siblings元素$(" h2~dl " )选取<h2>元素之后所有的同辈元素<dl>
后代选择器

后代选择器用来获取元素的后代元素

$("#menu span").css("background-color","#09F"); // 获取并设置#menu下的<span>元素的背景颜色

20171218213410

子选择器

子选择器用来获取元素的子元素

$("#menu>span").css("background-color","#09F"); // 获取并设置#menu下的子元素<span>的背景颜色

>作用于元素的第一代后代,空格作用于元素的所有后代

相邻选择器

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

$("h2+dl").css("background-color","#09F"); // 获取并设置紧接在<h2>元素后的<dl>元素的背景颜色
同辈选择器

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

$("h2~dl").css("background-color","#09F"); // 获取并设置<h2>元素之后的所有同辈元素<dl>的背景颜色
属性选择器

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

名称语法构成描述示例
属性选择器[attribute]选取包含给定属性的元素$("[href]" )选取含有href属性的元素
属性选择器[attribute=value]选取等于给定属性是某个特定值的元素$("[href ='#']" )选取href属性值为“#”的元素
属性选择器[attribute !=value]选取不等于给定属性是某个特定值的元素$("[href !='#']" )选取href属性值不为“#”的元素
属性选择器[attribute^=value]选取给定属性是以某些特定值开始的元素$("[href^='en']" )选取href属性值以en开头的元素
属性选择器[attribute$=value]选取给定属性是以某些特定值结尾的元素$("[href$='.jpg']" )选取href属性值以.jpg结尾的元素
属性选择器[attribute*=value]选取给定属性是以包含某些值的元素$("[href*='txt']" )选取href属性值中含有txt的元素
属性选择器[selector1]选取满足多个条件的复合属性的元素$("li [id][title=新闻要点]" )选取含有id属性和title属性为新闻要点的<li>元素
根据属性名获取元素

属性选择器可以根据是否包含某属性来选取元素

$("h2[title]").css("background-color","#09F"); // 改变含有title属性的<h2>元素的背景颜色
根据属性值获取元素

属性选择器可以根据属性的值来选取元素

$("[class=odds]").css("background-color","#09F"); // 改变class属性的值为odds的元素的背景颜色
多属性条件选择

属性选择器支持多属性条件复合查找元素

$("li[class][title*=y]").css("background-color","#09F"); // 改变包含class属性,且title属性的值中含有y的<li>元素的背景颜色

学员操作

使用jQuery美化英雄联盟简介页

需求说明:单击p元素后,根据下图设置元素的背景颜色、文本颜色属性

image

制作非缘勿扰页面特效
  • 需求说明:
  1. 使用标签选择器获取<dt>元素,设置字体颜色
  2. 使用类选择器获取排版“导演”的元素,加粗字体
  3. 使用ID选择器获取排版“标签”的元素,设置背景颜色、字体颜色、间距
  4. 使用属性选择器获取“收藏”元素,单击它后弹出对话框

image

实现思路:

  1. 使用$(document).ready()创建文档加载事件
  2. 按要求使用$(选择器)选取所需元素
  3. 为获取到的元素添加单击事件,并为事件添加处理事件的方法
  4. 使用css( )方法或addClass()为所选取的元素添加CSS样式,使用addClass()添加样式时,该样式写在样式表文件中

过滤选择器

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

主要分类如下:

  • 基本过滤选择器
  • 可见性过滤选择器
  • 表单对象过滤选择器
  • 内容过滤选择器、子元素过滤选择器
基本过滤选择器

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

语法构成描述示例
:first选取第一个元素$(" li:first" )选取所有元素中的第一个元素
:last选取最后一个元素$(" li:last" )选取所有元素中的最后一个元素
:even选取索引是偶数的所有元素(index从0开始)$(" li:even" )选取索引是偶数的所有元素
:odd选取索引是奇数的所有元素(index从0开始)$(" li:odd" )选取索引是奇数的所有元素
:eq(index)选取索引等于index的元素(index从0开始)$("li:eq(1)" )选取索引等于1的元素
:gt(index)选取索引大于index的元素(index从0开始)$(" li:gt(1)" )选取索引大于1的元素(注:大于1,不包括1)
:lt(index)选取索引小于index的元素(index从0开始)$(“li:lt(1)” )选取索引小于1的元素(注:小于1,不包括1)
:not(selector)选取去除所有与给定选择器匹配的元素$(" li:not(.three)" )选取class不是three的元素
:header选取所有标题元素,如h1~h6$(":header" )选取网页中所有标题元素
:focus选取当前获取焦点的元素$(":focus" )选取当前获取焦点的元素
基本过滤选择器
  • 选取第一个元素
  $("li:first");
  • 选取最后一个元素
  $("li:last");
  • 选取索引为偶数的元素
  $("li:even");
  • 选取索引为奇数的元素
  $("li:odd");
  • 选取索引值等于1的元素
  $("li:eq(1)");
  • 选取索引值大于1的元素
  $("li:gt(1)");
  • 选取索引值小于1的元素
  $("li:lt(1)");
  • 根据选择器反向选择元素
  $("li:not(.three)");
  • 选取所有标题元素
  $(":header");
  • 选取获得焦点的元素
  $(":focus");
可见性过滤选择器

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

语法构成描述示例
:visible选取所有可见的元素$(":visible" )选取所有可见的元素
:hidden选取所有隐藏的元素$(":hidden" ) 选取所有隐藏的元素
$("p:hidden").show(); // 获取隐藏的<p>元素,使其显示
$("p:visible").hide(); // 获取显示的<p>元素,使其隐藏   

特殊符号的转义

  • 选择器中的特殊符号需要转义,在如下html代码中
  <div id="id#a">aa</div>
  <div id="id[2]">cc</div>
  • 获取这两个元素的选择器:

错误方式:

  $("#id#a");
  $("#id[2]");

正确方式

  $("#id\\#a");
  $("#id\\[2\\]");

选择器中的空格

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

// 选取class为“test”的元素内部的隐藏元素
var $t_a = $(".test :hidden"); //带空格的jQuery选择器
// 选取隐藏的class为“test”的元素
var $t_b = $(".test:hidden");  //不带空格的jQuery选择器

学员操作

  • 使用jQuery美化近期热门栏目

  • 需求说明:页面加载后,列表项的偶数行背景颜色为#CCC,其中“宿醉”所在列表项背景颜色为#FF99CC,单击“更多”和“更多排名”均能显示隐藏的列表内容

image

image

总结

  • 基本选择器
    1. 标签选择器、类选择器、ID选择器
    2. 并集选择器、交集选择器、全局选择器
  • 层次选择器
    1. 后代选择器、子选择器
    2. 相邻选择器、同辈选择器
  • 属性选择器
    1. 属性名过滤、属性值过滤、多属性条件过滤
  • 基本过滤选择器
  • 可见性过滤选择器

作业

本章中选择器包括哪些?每一个写一个示例。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值