针对初学者的jQuery入门指南
jQuery是什么,它能为我们做什么?如果你是一名Web开发人员,写过JavaScript程序,那么你很可能正在使用jQuery,即使没有试用过,至少也听说过,事实上jQuery可以说是现阶段最流行的JavaScript库。据有关部门统计,全球网站上面,约有28%的网站在使用jQuery,这个数字可能有些夸张,但足见jQuery受欢迎的程度。本文仅对jQuery的使用方法作简单介绍,且作为一个入门教程吧。
下载jQuery代码,并在页面中载入
首先需要从jQuery官方网站去下载最新的jQuery代码,jQuery官方提供两个版本的,一个是经过压缩的,一个是没有经过压缩的,如果你不打算阅读或分析jQuery源代码的话,那么建议下载压缩过的版本,因为它体积更小。下载完成后,在你的HTML代码中载入,载入方法如下:
<html> <head> <title>jQuerytutorial</title> <scripttype="text/javascript"src="jquery-1.4.4.min.js"></script> </head> <body> jQuerytutorial </body> </html>
当然,介于jQuery目前之流行程度,也有不少网站提供了在线的jQueryAPI,例如GoogleAPI,所以我们可以通过以下方法载入jQuery:
<scripttype="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代码,首先要接触的就是documentready这个事件处理机制,几乎你所有的jQuery代码都要写在这个事件里面。这个东西主要有两个作用:
确保在网页完全载入完成后,才执行jQuery代码。因为如果网页中有DOM元素还未完全载入,那么用jQuery代码去访问或操作DOM元素的话会出错。
一定程度上将jQuery代码和其它代码区分开来。
代码写法一般如下:
<scripttype="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标签元素 $("ullia.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","solid1px#ccc")//为所有无序列表添加实线边框,且边框颜色为#ccc
在网页中添加、移除、追加DOM元素或内容
jQuery中同样提供了好多种方法来操作DOM元素,例如改变操作标签中的文本。。。几个例子如下:
varmyElementHTML=$("#myElement").html(); //获取ID为myElement的元素中的所有内容,包括文本和HTML标签 //这种方法类似于传统JavaScript中的innerHTML varmyElementHTML=$("#myElement").text(); //获取ID为myElement的元素中的文本,仅包括文本,HTML标签除外
类似以上两种方法,还可以改变DOM元素中的HTML或文本:
$("#myElement").html("<p>Thisisthenewcontent.</p>"); //#myElement中的内容将被这个段落替换掉 $("#myElement").text("Thisisthenewcontent."); //#myElement中的内容将被这行文本替换掉
在元素内追加内容:
$("#myElement").append("<p>Thisisthenewcontent.</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(){ //这里的代码在fadeout完成后执行 }); $("#myElement").fadeIn("slow",function(){ //这里的代码在fadein完成后执行 });
调整元素的透明度:
$("#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还有其它许多动画效果需要不断地去深入学习和挖掘。