针对初学者的jQuery入门指南


Posted in Javascript onAugust 15, 2015

 jQuery 是什么,它能为我们做什么?如果你是一名 Web 开发人员,写过 JavaScript 程序,那么你很可能正在使用 jQuery,即使没有试用过,至少也听说过,事实上 jQuery 可以说是现阶段最流行的 JavaScript 库。据有关部门统计,全球网站上面,约有 28% 的网站在使用 jQuery,这个数字可能有些夸张,但足见 jQuery 受欢迎的程度。本文仅对 jQuery 的使用方法作简单介绍,且作为一个入门教程吧。
下载 jQuery 代码,并在页面中载入

首先需要从jQuery 官方网站 去下载最新的 jQuery 代码,jQuery 官方提供两个版本的,一个是经过压缩的,一个是没有经过压缩的,如果你不打算阅读或分析 jQuery 源代码的话,那么建议下载压缩过的版本,因为它体积更小。下载完成后,在你的 HTML 代码中载入,载入方法如下:

<html>
 <head>
 <title>jQuery tutorial</title>
 <script type="text/javascript" src="jquery-1.4.4.min.js"></script>
 </head>
 <body>
 jQuery tutorial
 </body>
</html>

当然,介于 jQuery 目前之流行程度,也有不少网站提供了在线的 jQuery API,例如 Google API,所以我们可以通过以下方法载入 jQuery:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js?ver=1.1.4"></script>
地址后面加上了一个参数 ver=1.1.4,需要说明的是,JavaScript 代码肯定是无法接收任何参数的,这里加了这个参数仅仅是为了让浏览器重服务器上获取最新版本,因为之前你的浏览器缓存中可能已经有了jquery.min.js 这个文件,这里只是为了避免缓存罢了。
jQuery 代码如何执行

学习编写 jQuery 代码,首先要接触的就是 document ready 这个事件处理机制,几乎你所有的 jQuery 代码都要写在这个事件里面。这个东西主要有两个作用:

    确保在网页完全载入完成后,才执行 jQuery 代码。因为如果网页中有 DOM 元素还未完全载入,那么用 jQuery 代码去访问或操作 DOM 元素的话会出错。
    一定程度上将 jQuery 代码和其它代码区分开来。

代码写法一般如下:

<script type="text/javascript">
$(document).ready(function() {
 // 所有的 jQuery 代码都写在这里
});
</script>

使用 jQuery 选择器选择 DOM 元素

jQuery 里面封装了一个函数 $("") 让我们在 HTML 文档里面方便地选择 DOM 元素,下面是几个简单的使用方法。

$("div"); // 选择当前 HTML 文档中的所有 DIV 元素
$("#myElement"); // 选择当前 HTML 文档中 ID 为 "myElement" 的元素
$(".myClass"); // 选择当前 HTML 文档中 class 为 "myClass" 的元素
$("p#myElement"); // 选择当前 HTML 中 ID 为 "myElement" 的段落 P 标签元素
$("ul li a.navigation"); // 选择列表元素中 class 为 "navigation" 的超链接

jQuery 支持几乎所有的 CSS 选择器方法

$("p > a"); // 选择所有 P 标签中的超链接 A 元素
$("input[type=text]"); // 选择 input 元素中 type 为 text 的元素
$("a:first"); // 选择当前页面中的第一个超链接 A 元素
$("p:odd"); // 选择当前页面中序数为奇数的段落 P 元素
$("li:first-child"); // 选择列表中的第一个元素

jQuery 自身也定义了一些选择器方法,下面是几个例子:

$(":animated"); // 选择所有正在执行动画效果的元素
$(":button"); // 选择所有按钮元素 (input 或 button)
$(":radio"); // 选择所有单选框元素
$(":checkbox"); // 选择所有复选框元素
$(":checked"); // 选择所有已经在 选定状态 的单选框和复选框
$(":header"); // 选择所有标题元素 (h1, h2, h3, h4 ...)

操作和访问 CSS 中的 class 名称

利用 jQuery 可以为 DOM 元素添加、移除类名,并且使用起来相当之方便。下面是几个典型的使用方法:

$("div").addClass("content"); // 为所有 <div> 元素添加名为 "content" 的类
$("div").removeClass("content"); // 移除所有 <div> 元素中,名为 "content" 的类
$("div").toggleClass("content"); // 交替所有 <div> 元素中,名为 "content" 的类 (如果该元素中不存在这个类,则为它加上这个类;如存在,则移除之)

当然,你也可以用 jQuery 来检测一下某元素中是否正在使用某个 class,代码如下

if ($("#myElement").hasClass("content")) {
 alert("存在名为 content 的类!");
}
else {
 alert("不存在名为 content 的类!");
}

用 jQuery 来操作 CSS 中的样式

使用 jQuery 可以轻松的为 DOM元素添加 CSS 样式,下面是几个范例:

$("p").css("width", "400px"); // 为所有段落添加一个宽度
$("#myElement").css("color", "blue") // 将所有 ID 为 #myElement 的元素中文本颜色变为蓝色
$("ul").css("border", "solid 1px #ccc") // 为所有无序列表添加实线边框,且边框颜色为 #ccc

在网页中添加、移除、追加 DOM 元素或内容

jQuery 中同样提供了好多种方法来操作 DOM 元素,例如改变操作标签中的文本。。。几个例子如下:

var myElementHTML = $("#myElement").html();
// 获取 ID 为 myElement 的元素中的所有内容,包括文本和 HTML 标签
// 这种方法类似于传统 JavaScript 中的 innerHTML

var myElementHTML = $("#myElement").text();
// 获取 ID 为 myElement 的元素中的文本,仅包括文本,HTML 标签除外

类似以上两种方法,还可以改变 DOM 元素中的 HTML 或文本:

$("#myElement").html("<p>This is the new content.</p>");
// #myElement 中的内容将被这个段落替换掉

$("#myElement").text("This is the new content.");
// #myElement 中的内容将被这行文本替换掉

在元素内追加内容:

$("#myElement").append("<p>This is the new content.</p>");
// 保留标签内原有内容,并在末尾处追加新内容

对于向元素上追加内容,jQuery 还有其它几种用法,如: appendTo(), prepend(), prependTo(), before(), insertBefore(), after(), insertAfter(),各有其特点,但使用方法和 append() 类似。
jQuery 之事件处理

一些特定的事件处理程序可以用如下方法来实现:

$("a").click(function() {
 // 可以在这里写一些代码
 // 当超链接被点击的时候这里的代码将被执行
});

当超链接被点击的时候,function() 里面的代码将被执行。还有其它的一些事件使用方法也一样,如:blur, focus, hover, keydown, load, mousemove, resize, scroll, submit, select。
用 jQuery 隐藏或显示元素

jQuery 也可以非常方便地显示或隐藏 DOM 元素,示例代码如下:

$("#myElement").hide("slow", function() {
 // 这里可以写一些代码,当元素被隐藏后,这里的代码将被执行
});

$("#myElement").show("fast", function() {
 // 这里可以写一些代码,当元素被隐藏后,这里的代码将被执行
});

$("#myElement").toggle(1000, function() {
 // 这里可以写一些代码,当元素被隐藏/显示后,这里的代码将被执行
});

可以看到,当元素显示或隐藏的时候,是慢慢的渐渐变化的,这是因为上面用到了几个速度参数,如 slow,fast,除此之外还有 normal,数字 1000 表示毫秒数,可以自定义。如果没有设置速度参数,那么元素将直接显示或隐藏,一闪而过,没有任何动画效果。后面的第二个参数是一个 function,用来当显示/隐藏完毕后,再执行一些需要的代码,如果不需要,可省略此参数。

另外还有一种“渐隐渐显”的方法,也是动画效果,使用方法如下:

$("#myElement").fadeOut("slow", function() {
 // 这里的代码在 fade out 完成后执行
});

$("#myElement").fadeIn("slow", function() {
 // 这里的代码在 fade in 完成后执行
});

调整元素的透明度:

$("#myElement").fadeTo(2000, 0.4, function() {
 // 这里的代码在在调整透明度完成后执行
});

其中第一个参数是仍然是速度参数,第二个参数是透明度,但三个参数是一个匿名回调函数,当渐变完成后执行。
jQuery 之动画效果

jQuery 可以为 DOM 元素添加上下滑动效果:

$("#myElement").slideDown("fast", function() {
 // .......
});

$("#myElement").slideUp("slow", function() {
 // .......
});

$("#myElement").slideToggle(1000, function() {
 // .......
});

jQuery 的动画效果还可以应用在改变 DOM 元素样式的时候,使改变样式的过程以平滑过渡的方式进行,而且可以选择需要速度,示例如下:

$("#myElement").animate({
 opacity: 0.3,
 width: "500px",
 height: "700px"
 }, 
 1000, 
 function() {
 // ......
});

总的来说,jQuery 的动画效果很强大,但是也有其怪癖(例如要改变颜色的话,可能需要其它特定的插件)。jQuery 还有其它许多动画效果需要不断地去深入学习和挖掘。

Javascript 相关文章推荐
js表数据排序 sort table data
Feb 18 Javascript
Egret引擎开发指南之发布项目
Sep 03 Javascript
第五章之BootStrap 栅格系统
Apr 25 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
vue.js树形组件之删除双击增加分支实例代码
Feb 28 Javascript
简单谈谈关于Angular Cli打包的事
Sep 05 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
Feb 23 Javascript
vuex 的简单使用
Mar 22 Javascript
vue.js单文件组件中非父子组件的传值实例
Sep 13 Javascript
js滚轮事件 js自定义滚动条的实现
Jan 18 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
Feb 12 Javascript
一行JavaScript代码如何实现瀑布流布局
Dec 11 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
Aug 15 #Javascript
在jQuery中处理XML数据的大致方法
Aug 14 #Javascript
JavaScript中var关键字的使用详解
Aug 14 #Javascript
JavaScript的jQuery库中ready方法的学习教程
Aug 14 #Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
Aug 14 #Javascript
JavaScript学习笔记之DOM基础 2.4
Aug 14 #Javascript
关于JavaScript的变量的数据类型的判断方法
Aug 14 #Javascript
You might like
Zend studio文件注释模板设置方法
2013/09/29 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
JS中from 表单序列化提交的代码
2017/01/20 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
[01:00:54]TI4正赛第二日开场
2014/07/20 DOTA
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
在Django同1个页面中的多表单处理详解
2017/01/25 Python
Python有序查找算法之二分法实例分析
2017/12/11 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
python生成圆形图片的方法
2020/03/25 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
Python 的AES加密与解密实现
2019/07/09 Python
Python Opencv任意形状目标检测并绘制框图
2019/07/23 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
马来西亚在线购物市场:PGMall.my
2019/10/13 全球购物
优良学风班申请材料
2014/02/13 职场文书
《太阳》教学反思
2014/02/21 职场文书
2015年百日安全活动总结
2015/03/26 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python