针对初学者的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 相关文章推荐
JavaScript中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
Jan 24 Javascript
探索angularjs+requirejs全面实现按需加载的套路
Feb 26 Javascript
原生js实现商品放大镜效果
Jan 12 Javascript
React-router中结合webpack实现按需加载实例
May 25 Javascript
webpack构建的详细流程探底
Jan 08 Javascript
vue组件横向树实现代码
Aug 02 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
JS html事件冒泡和事件捕获操作示例
May 01 Javascript
JavaScript字符串处理常见操作方法小结
Nov 15 Javascript
JS原型prototype和__proto__用法实例分析
Mar 14 Javascript
详解Vue的异步更新实现原理
Dec 22 Vue.js
在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
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
php文件下载处理方法分析
2015/04/22 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
jQuery 3.0 的变化及使用方法
2016/02/01 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
WebPack基础知识详解
2017/01/16 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
Python进阶之全面解读高级特性之切片
2019/02/19 Python
python制作填词游戏步骤详解
2019/05/05 Python
详解python中__name__的意义以及作用
2019/08/07 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
Python爬虫开发与项目实战
2020/12/16 Python
与UNIX有关的几个名词
2015/09/17 面试题
报社实习生自荐信
2014/01/24 职场文书
工程部部长岗位职责
2015/02/12 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
致运动员加油稿
2015/07/21 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server