配色: 字号:
JavaScript前端开发案例教程-第11章 jQuery
2022-11-08 | 阅:  转:  |  分享 
  
第11章 jQuery《JavaScript前端开发案例教程(第2版)》学习目标/Target学习目标/Target学习目标/Target
章节概述/ Summary通过前面的学习,相信大家已经掌握了DOM、Ajax等操作,但在开发中,使用原生的DOM操作和Ajax操作
非常麻烦,并且还存在浏览器兼容问题,那么如何才能使开发变得简单呢?这时就可以使用jQuery了。本章将针对jQuery的使用进行详
细讲解。目录/Contents目录/ContentsjQuery快速入门11.1 先定一个小目标!了解什么是jQuery,能够说出
jQuery的特点11.1.1 什么是jQueryjQuery是一款快速、简洁、开源的JavaScript库,由约翰·瑞思格(J
ohn Resig)等人创建。2006年1月的纽约BarCamp国际研讨会上,约翰·瑞思格首次发布了jQuery,发布后吸引了来自
世界各地的众多JavaScript开发者的关注。11.1.1 什么是jQuery11.1.1 什么是jQueryjQuery的
宗旨是“write less,do more”(使用更少的代码,做更多的事情)。jQuery是一个轻量级的库,其代码非常小巧。语法
简洁易懂,学习速度快,文档丰富。支持CSS1~CSS3定义的属性和选择器。跨浏览器,支持的浏览器包括IE和FireFox、Chro
me等。插件丰富,可以通过插件扩展更多功能。特点1特点2特点3特点4特点511.1.1 什么是jQueryjQuery的版本jQ
uery 1.x系列版本:保持了对早期浏览器的支持,最终版本是jQuery 1.12.4。jQuery 2.x系列版本:不兼容IE
6~8浏览器,从而更加轻量化,最终版本是jQuery 2.2.4。jQuery 3.x系列版本:不兼容IE 6~8浏览器,此版本
增加了一些新方法,对一些方法的行为做了优化和改进。 先定一个小目标!掌握jQuery的下载和引入,能够独立完成jQuery的下载并
且能够使用两种方式引入jQuery11.1.2 下载和引入jQuery11.1.2 下载和引入jQuery uncompres
sed表示未压缩版 minified表示压缩版 slim表示简化版 slim minified表示简化版的压缩版步骤1:在Chro
me浏览器中访问jQuery下载页面。11.1.2 下载和引入jQuery步骤2:单击“jQuery Core 3.6.0”版本
的“minified”链接,进入Code Integration界面。src属性是jQuery文件的引用地址。integrity属
性用于通过一串校验码以防止脚本文件在传输的时候内容丢失或者被恶意修改。crossorigin属性用于配置CORS跨域请求,设为an
onymous表示不发送用户凭据。11.1.2 下载和引入jQuery步骤3:将整个 先定一个小目标!掌握
jQuery的简单使用,能够使用jQuery实现简单的页面效果11.1.3 jQuery的简单使用jQuery的基本使用大致可以
分为以下3步。第1步:在页面中引入jQuery。第2步:获取要操作的元素。第3步:调用操作方法,如调用hide()方法将元素隐藏。
11.1.3 jQuery的简单使用 先定一个小目标!熟悉jQuery对象,能够说出jQuery对象与DOM对象的区别11.1.
4 jQuery对象11.1.4 jQuery对象在页面中引入jQuery后,全局作用域下会新增两个变量,分别是“$”和“jQ
uery”,这两个变量引用的是同一个对象,称为jQuery顶级对象。为了方便书写,通常使用“$”变量。11.1.4 jQuery
对象通过代码演示$和jQuery的使用,示例代码如下。// $的使用$(''div'').hide();// jQuery的使用jQu
ery(''div'').hide();11.1.4 jQuery对象jQuery顶级对象与jQuery对象的关系jQuery顶级对
象类似一个构造函数,用来创建jQuery实例对象(简称jQuery对象),但它不需要使用new关键字,它的内部会自动进行实例化,返
回实例化后的对象。jQuery对象的本质是jQuery顶级对象对DOM对象包装后产生的对象。jQuery对象以伪数组的形式存储,它
可以包装一个或多个DOM对象。11.1.4 jQuery对象通过代码对比jQuery对象和DOM对象的区别,首先在页面中定义一个
标签,然后执行如下代码。11.1.4 jQuery对象分析执行结果:①表示
获取到的jQuery对象,在jQuery对象中,索引为0的元素是DOM对象,length属性表示DOM对象的个数。②表示获取到的D
OM对象集合,索引为0的元素表示集合中的第1个DOM对象。11.1.4 jQuery对象在实际开发中,经常会在jQuery对象和
DOM对象之间进行转换,因为DOM对象比jQuery对象更复杂,DOM对象的一些属性和方法在jQuery对象中没有封装,所以使用这
些属性和方法时需要把jQuery对象转换为DOM对象。另外,DOM对象也可以转换为jQuery对象。11.1.4 jQuery对
象实现jQuery对象转换为DOM对象有两种方式:第1种方式的语法是“jQuery对象[索引]”。第2种方式的语法是“jQuery
对象.get(索引)”。示例代码如下。var div1 = $(''div'')[0]; // 第1种方式var div
2 = $(''div'').get(0); // 第2种方式11.1.4 jQuery对象利用“$(DOM对象)”语法可以将D
OM对象转换为jQuery对象,示例代码如下。// 获取DOM对象var div = document.getElementsBy
TagName(''div'')[0];// 将DOM对象转换成jQuery对象var div = $(div);jQuery对象和D
OM对象的使用方式不同,因此在编写代码时不能混用,否则程序将会出错。注意获取元素11.211.2 获取元素在程序开发中,经常需要
对页面中的各种元素进行操作,在操作前必须先准确地找到元素。通过第6章的学习,大家已经掌握了如何使用原生的JavaScript获取元
素,由于原生的JavaScript获取元素的代码写起来烦琐,而且兼容性情况也不一致,jQuery为我们提供了更便捷的获取元素的方式
,即通过选择器获取元素。 先定一个小目标!掌握利用选择器获取元素,能够在程序中利用选择器获取元素11.2.1 利用选择器获取元素
jQuery提供了类似CSS选择器的机制,利用选择器可以很方便地获取元素。常用的选择器有id选择器、class选择器、标签选择器等
。11.2.1 利用选择器获取元素11.2.1 利用选择器获取元素利用jQuery选择器获取元素的基本语法是“$(选择器)”,
示例代码如下。$(''#one''); // 获取id为one的元素$(''.two''); // 获取class为two的元素$(''di
v''); // 获取标签为div的元素 先定一个小目标!熟悉jQuery中常用的选择器,能够根据需要选择合适的选择器11.2.2
jQuery中常用的选择器11.2.2 jQuery中常用的选择器本节介绍一些开发中可能会用到的选择器。基本选择器层次选择器筛
选选择器属性选择器子元素选择器表单选择器11.2.2 jQuery中常用的选择器下面列举常用的基本选择器。11.2.2 jQu
ery中常用的选择器下面列举常用的层次选择器。11.2.2 jQuery中常用的选择器下面列举常用的筛选选择器。11.2.2
jQuery中常用的选择器11.2.2 jQuery中常用的选择器11.2.2 jQuery中常用的选择器下面列举常用的属性选
择器。11.2.2 jQuery中常用的选择器11.2.2 jQuery中常用的选择器下面列举常用的子元素选择器。11.2.2
jQuery中常用的选择器11.2.2 jQuery中常用的选择器下面列举常用的表单选择器。11.2.2 jQuery中常
用的选择器11.2.2 jQuery中常用的选择器元素操作11.311.3 元素操作通过前面的学习,我们已经掌握了如何利用选择
器获取元素,获取元素的目的是操作元素,从而实现某些特定的功能。元素操作主要是通过jQuery提供的一系列方法来完成,下面我们将学习
常见的元素操作。11.3.1 元素遍历操作 先定一个小目标!掌握元素遍历操作,能够对元素进行遍历11.3.1 元素遍历操作当使
用“$(选择器)”语法获取到的元素有多个时,如果我们想对多个元素分别进行操作,就需要进行元素遍历操作。jQuery提供了each(
)方法用于快速实现元素遍历操作。11.3.1 元素遍历操作$(选择器).each(function (index, domEle
) { 具体操作});each()方法的参数是一个函数,遍历时每个元素都会调用一次这个函数。index参数表示每个元素的索引。d
omEle参数表示每个DOM元素对象。each()方法的基本语法格式如下。11.3.2 元素内容操作 先定一个小目标!掌握元素内
容操作,能够操作元素的内容11.3.2 元素内容操作jQuery提供了内容操作方法,用来操作元素的内容,具体如下。html()方
法text()方法val()方法11.3.2 元素内容操作元素内容操作方法的具体说明如下。11.3.2 元素内容操作html(
)方法和text()方法的区别在于:html()方法会解析HTML标签,而text()方法不会。val()方法可以操作表单元素se
lect、radio和checkbox的选中情况。当要获取的元素是select元素时,返回结果是一个包含所选值的数组。当要为表单元
素设置选中情况时,可以传递数组参数。11.3.3 元素样式操作在开发中,经常需要通过设置元素的样式来美化页面,给用户带来更好的视
觉体验。jQuery中有以下3种常用的样式操作。利用css()方法操作元素样式操作元素的尺寸和位置操作元素的样式类11.3.3
元素样式操作 先定一个小目标!掌握利用css()方法操作元素样式,能够完成元素的样式操作11.3.3 元素样式操作使用jQuer
y提供的css()方法可以获取或设置元素的样式,关于css()方法的具体说明如下。11.3.3 元素样式操作当css()方法接收
对象作为参数时,如果属性名由两个单词组成,需要将CSS属性名中的“-”去掉,并将第2个单词首字母大写。注意css()方法参数解释:
propertyName是一个字符串,表示样式属性名。value表示样式属性值。properties表示样式对象,如{color:
''red''}。11.3.3 元素样式操作 先定一个小目标!掌握操作元素的尺寸和位置,能够完成元素尺寸和位置的操作11.3.3
元素样式操作jQuery提供的尺寸方法用来获取或设置元素的高度和宽度,具体方法及说明如下。11.3.3 元素样式操作jQuer
y提供的位置方法用来获取或设置元素的位置。11.3.3 元素样式操作 先定一个小目标!掌握操作元素的样式类,能够完成元素的样式类
操作11.3.3 元素样式操作在网页中设置样式一般是使用类操作,即定义class,jQuery也可以通过操作样式类更改元素的样式
,具体操作方法及说明如下。11.3.4 元素属性操作 先定一个小目标!掌握元素属性操作,能够操作元素的属性11.3.4 元素属
性操作jQuery中的一些常用的元素属性操作方法,具体如下。11.3.4 元素属性操作当用户操作表单元素(如select、rad
io)时,如果表单元素的选中状态发生了改变,使用attr()方法无法获取,此时推荐使用prop()方法。注意对元素属性操作方法的解
释:参数name表示属性名,value表示属性值。data()方法还可以读取以data-开头的属性。11.3.5 元素查找和过滤
操作 先定一个小目标!掌握元素查找和过滤操作,能够快速查找和过滤元素11.3.5 元素查找和过滤操作列举一些常用的元素查找方法,
具体说明如下。11.3.5 元素查找和过滤操作列举一些常用的元素过滤方法,具体说明如下。11.3.6 元素追加操作 先定一个小
目标!掌握元素追加操作,能够实现元素的追加11.3.6 元素追加操作元素追加指的是在现有的元素中进行子元素或兄弟元素的添加,jQ
uery提供了元素追加的方法,可以帮助我们快速实现元素的追加。11.3.6 元素追加操作下面列举一些常用的元素追加方法,具体说明
如下。11.3.6 元素追加操作对元素追加操作方法的解释:参数content可以是DOM 元素、文本节点、元素集合、HTML字符
串或 jQuery对象。参数fn是回调函数,通过返回值传入内容(content)。参数target表示目标元素,可以传入选择器、H
TML字符串、DOM元素、元素集合或jQuery对象。11.3.7 元素替换操作 先定一个小目标!掌握元素替换操作,能够实现元素
的替换11.3.7 元素替换操作元素替换是指将选中的元素替换为指定的元素,关于元素替换操作的方法和说明如下。11.3.8 元素
删除操作 先定一个小目标!掌握元素删除操作,能够删除指定的元素11.3.8 元素删除操作关于元素删除操作的方法和说明如下。11.
3.9 元素复制操作 先定一个小目标!掌握元素复制操作,能够实现元素的复制11.3.9 元素复制操作在开发中,当我们进行元素追
加操作,将匹配元素插入到目标的末尾或者开头时,通常是移动匹配元素的位置,若要实现不移动位置,且能实现将匹配元素插入到目标中时,可以
配合jQuery提供的元素复制的方法来实现。11.3.9 元素复制操作element.clone([Events][, deep
Events])Events表示是否复制元素的事件处理程序和数据,默认为false,若该参数为true,将复制事件处理程序和数据。
deepEvents表示是否深层复制,即是否复制元素的子元素的事件处理程序和数据。clone()方法用于快速实现元素的复制,其语法
格式如下。事件操作11.411.4 事件操作事件的处理在JavaScript中是一个很重要的功能。jQuery简化了事件的操作,
我们可以直接调用相关事件的操作方法来实现事件的处理。对于页面加载事件、表单事件、鼠标事件以及键盘事件等,都可以用jQuery来完成
。 先定一个小目标!掌握页面加载事件,能够利用jQuery中的页面加载事件实现页面的初始化11.4.1 页面加载事件页面加载事件
用来实现页面的初始化。一般情况下,使用jQuery操作DOM元素时,为了确保jQuery代码能够生效,要将jQuery代码写在DO
M元素后面,否则代码不会生效。如果一定要将jQuery代码写在DOM元素前面,就需要使用页面加载事件来实现。11.4.1 页面加
载事件jQuery中的页面加载事件方法有3种语法格式,具体如下。11.4.1 页面加载事件$(document).ready(f
unction () { }); // 语法格式1$().ready(function () { }); // 语法格式2
$(function () { }); // 语法格式3虽然window.onload与jQuery页面加载事件的功能类似,但
是两者在使用时有一定的区别。11.4.1 页面加载事件11.4.2 事件注册在jQuery中,事件注册有以下两种方式。通过事件
方法进行事件注册。通过on()方法进行事件注册。 先定一个小目标!掌握通过事件方法实现事件注册,能够完成事件的注册11.4.2
事件注册11.4.2 事件注册jQuery的事件方法在jQuery中通过事件方法实现事件注册是通过调用某个事件方法,并传入事件处
理函数实现事件注册。jQuery的事件方法和DOM中的事件相比,省略了开头的“on”,如jQuery中的click()对应DOM中
的onclick事件。jQuery中的事件方法允许多次调用从而为一个事件注册多个事件处理函数。11.4.2 事件注册下面列举jQ
uery中一些常用的事件方法,具体说明如下。11.4.2 事件注册11.4.2 事件注册11.4.2 事件注册 handle
r表示触发事件时执行的事件处理函数。 eventData表示为事件处理函数传入的数据,可以使用“事件对象.data”获取该数据。
先定一个小目标!掌握通过on()方法实现事件注册,能够完成事件的注册11.4.2 事件注册11.4.2 事件注册jQuery提
供的on()方法用于为元素注册一个或多个事件处理函数,用法如下。// 用法1:一次注册一个事件element.on(event,
fn);// 用法2:一次注册多个事件element.on({ event: fn }, { event: fn }, …);//
用法3:为不同事件注册相同的事件处理函数element.on(events, fn);event表示事件类型,如click、mo
useover等。events表示多个事件类型,每个事件类型使用空格分隔。fn表示回调函数,即事件处理函数。11.4.2 事件注
册jQuery提供了hover()方法,可以代替鼠标指针移入和移出事件,语法如下。多学一招:hover()方法element.ho
ver(over, out)over表示鼠标指针移入元素时执行的事件处理函数。out表示鼠标指针移出时执行的事件处理函数。 先定一
个小目标!掌握事件触发,能够使用3种方式实现事件触发11.4.3 事件触发11.4.3 事件触发一般情况下,为元素注册事件后,
由用户或浏览器触发事件,若希望某个事件在程序中被触发,就需要手动触发这个事件。jQuery中,实现事件手动触发有以下3种方式。通过
事件方法实现事件触发。通过trigger()方法实现事件触发。通过triggerHandler()方法实现事件触发。11.4.3
事件触发在jQuery中,调用事件方法不仅可以实现事件注册,还可以实现事件触发,两者的区别在于是否传入参数,传入参数表示事件注册
,不传入参数表示事件触发,示例代码如下。// 事件注册$(''div'').click(function () { alert(''H
ello'');});// 事件触发$(''div'').click();11.4.3 事件触发使用trigger()方法可以触发指定
事件,示例代码如下。// 事件注册$(''div'').click(function () { alert(''Hello'');});
// 事件触发$(''div'').trigger(''click'');11.4.3 事件触发通过事件方法和trigger()方法触发
事件时,都会执行元素的默认行为,而通过triggerHandler()方法触发事件不会执行元素的默认行为。元素的默认行为指的是用户
发生某个动作后元素自动发生的行为,例如,文本框获取焦点时有光标闪烁的现象。11.4.3 事件触发下面演示triggerHandl
er()方法的使用。
先定一个小目标!掌握事件委托,能够将子元素的事件注册到父元素上11.4.4 事件委托11.4.4 事件委托事件
委托指的是把原本要给子元素注册的事件委托给父元素,也就是将子元素的事件注册到父元素上。jQuery中事件委托通过on()方法来实现
,具体用法如下。element.on(event, selector, fn)event表示事件类型,selector表示子元素选
择器,fn表示事件处理函数。事件委托的优势在于,可以为未来动态创建的元素注册事件,其原理是将事件委托给父元素后,在父元素中动态创建
的子元素也会拥有事件。11.4.4 事件委托通过代码演示如何实现事件委托,示例代码如下。
  • 我是第1个li i>
  • 我是第2个li
  • 我是第3个li
先定一个小目标!掌握事件解除,能够实现解除所有事件、解除指定事件以及解除事件委托11.4.5 事件解除11
.4.5 事件解除事件解除指的是移除元素所注册的事件,jQuery提供了off()方法可以移除元素上注册的事件。关于off()方
法有3种常用的方式,具体代码如下。element.off(); // 解除元素上的所有事件element.off(event)
; // 解除元素上指定的事件element.off(event, selector); // 解除元素的事件委托11.4.5
事件解除在程序开发中,如果希望元素的某个事件只触发一次,可以利用one()方法实现,直接注册一次性事件,示例代码如下。多学一招
:one()方法$(''div'').one(''click'', function () { console.log(''我只触发一次''
);});动画特效11.511.5 动画特效在Web开发中,适当地加入动画效果不仅可以美化页面,还可以改善用户体验。jQuery
中提供了以下两种添加动画特效的方式。内置动画自定义动画 先定一个小目标!掌握内置动画,能够利用内置动画方法实现动画效果11.5.1
内置动画11.5.1 内置动画jQuery中实现动画效果的常用的内置动画方法如下。11.5.1 内置动画11.5.1 内
置动画常用的内置动画方法参数说明如下。duration表示动画的速度,可设置为动画时长的毫秒值(如1000),或预定的3种速度(s
low、fast和normal)。easing表示缓动效果,默认效果为swing,还可以使用linear效果。complete表示
在动画完成时执行的函数。opacity表示透明度数字(范围在0~1之间,0代表完全透明,0.5代表50%透明,1代表完全不透明)。
先定一个小目标!掌握自定义动画,能够根据程序需要创建自定义动画11.5.2 自定义动画11.5.2 自定义动画当jQuery
提供的内置动画无法满足需求时,可以使用自定义动画实现相关效果。使用animate()方法可以创建自定义动画,语法格式如下。elem
ent.animate(properties[, duration][, easing][, complete])properti
es表示一组包含动画最终属性值的集合,如果属性名由两个单词组成,需要使用驼峰命名法。duration表示动画的速度。easing表
示切换效果。complete表示在动画完成时执行的函数。11.5.2 自定义动画通过代码演示如何创建自定义动画,示例代码如下。<
div>
11.5.
2 自定义动画动画队列如果在同一个元素上调用一个以上的动画方法,那么对这个元素来说,除了当前正在调用的动画,其他的动画将被放到一
个队列中,这样就形成了动画队列。动画队列中的动画都是按照顺序执行的,默认只有当第1个动画执行完毕,才会执行下一个动画。11.5.2
自定义动画若希望停止动画效果可以使用jQuery提供的stop()方法实现。stop()方法不仅可以停止jQuery提供的内置
动画,还可以停止自定义动画,其语法格式如下。element.stop([clearQueue], [jumpToEnd])clea
rQueue是布尔值,表示是否删除排队当动画队列的动画,默认为false。jumpToEnd是布尔值,表示是否立即完成当前动画,默
认为false。11.5.2 自定义动画stop()方法参数设置的不同,会有不同的作用,下面演示3种常用的使用方式。$(''div
'').stop(); // 停止当前动画,继续下一个动画$(''div'').stop(true); // 删除动画队列中所有动画$
(''div'').stop(true, true); // 删除动画队列中所有动画,允许立即完成当前动画 先定一个小目标!掌握导航跟
随案例的开发,能够利用自定义动画实现导航跟随效果11.5.3 【案例】导航跟随效果11.5.3 【案例】导航跟随效果案例需求:
本案例将实现网页中导航跟随的效果,当鼠标指针移入到导航的某一项时,指示条也跟随鼠标指针移动。案例效果:11.5.3 【案例】导航
跟随效果案例的实现思路:编写HTML代码,定义无序列表用于实现导航的结构。编写CSS代码,用于为导航添加样式。编写jQuery代码
,创建自定义动画,实现导航跟随效果。jQuery操作Ajax11.6 先定一个小目标!掌握jQuery操作Ajax的常用方法,能够
实现Ajax交互11.6 jQuery操作Ajax11.6 jQuery操作Ajax原生的Ajax是通过XMLHttpRequ
est实现的,代码非常复杂,jQuery提供了更加便捷的Ajax操作方法,直接调用Ajax操作方法即可实现Ajax交互。11.6
jQuery操作AjaxjQuery中常用的Ajax操作方法如下。11.6 jQuery操作AjaxAjax操作方法的参数说明
:url表示请求地址。data表示要发送的数据。success表示请求成功时执行的回调函数。dataType用于设置服务器返回的数
据类型。settings用于设置Ajax请求的相关选项。11.6 jQuery操作AjaxAjax常用选项如下。11.6 jQ
uery操作AjaxjQuery中的$.get()方法用于向服务器发送GET方式的请求,示例代码如下。$.get(''http://
localhost:3000/get'', function (msg) { console.log(msg);});请求地址响应
信息11.6 jQuery操作AjaxjQuery中的$.post()方法用于向服务器发送POST方式的请求,示例代码如下。$.
post(''http://localhost:3000/post'', function (msg) { console.log(msg);}, ''json'');请求地址响应信息响应信息的数据类型11.6 jQuery操作Ajax$.ajax()是底层方法,通过设置该方法的options参数,可以实现$.get()、$.post()等方法同样的功能。使用$.ajax()方法发送GET方式的请求,示例代码如下。$.ajax({ type: ''GET’, url: ''http://localhost:3000/get’, success: function (msg) { console.log(msg); }});请求方式请求地址请求成功的回调函数 先定一个小目标!掌握动手实践:返回页面顶部的实现方法,能够利用jQuery的相关知识实现返回页面顶部的效果动手实践:返回页面顶部动手实践:返回页面顶部案例需求我们在浏览网页时,如果一个页面很长,当浏览到最下面时想要回顶部,需要一直向上滚动,非常麻烦,这时就可以利用“返回顶部”按钮让页面自动回到顶部。本案例将实现当滚动条滚动到一定位置时,页面右下角出现“返回顶部”按钮,单击该按钮可以将页面返回顶部。动手实践:返回页面顶部案例效果:动手实践:返回页面顶部案例的实现思路:编写HTML代码和CSS代码,实现页面结构和样式。编写jQuery代码,利用滚动条事件控制“返回顶部”按钮的显示和隐藏,并为“返回顶部”按钮注册单击事件,实现返回顶部的效果。本章小结本章首先讲解了什么是jQuery、下载和引入jQuery、jQuery的简单使用以及jQuery对象,然后讲解了获取元素、元素操作、事件操作以及动画特效,最后讲解了jQuery中的Ajax操作。希望读者通过本章的学习,掌握jQuery开发的相关知识,能够利用jQuery完成常见的页面交互效果。本章小结
献花(0)
+1
(本文系籽油荃面原创)