jQuery技巧

jQuery技巧总结中国经济网 经济博客7M2\l"^)b LQ%l:gK

中国经济网 经济博客2U3s brz ~s


CT�A A5j {*q F&b0中国经济网 经济博客(K#J F+` W4f*l
一、简介中国经济网 经济博客_:KV&j R.m:x'QB

5~of7A }01.1、概述中国经济网 经济博客r}|sS+q-M2ZN*~
随 着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype、YUI、jQuery、 mootools、Bindows以及国内的JSVM框架等,通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应用中解脱出来, 将关注点转向功能需求而非实现细节上,从而提高项目的开发速度。
/ii}cR"a2}0jQuery 是继prototype之后的又一个优秀的Javascript框架。它是由 John Resig 于 2006 年初创建的,它有助于简化 JavaScript™ 以及Ajax 编程。有人使用这样的一比喻来比较prototype和jQuery:prototype就像Java,而jQuery就像ruby. 它是一个简洁快速灵活的JavaScript框架,它能让你在你的网页上简单的操作文档、处理事件、实现特效并为Web页面添加Ajax交互。
nl$j$Ic s k]:QJ0
4F vm'f_q;A:D�s.tX*G0它具有如下一些特点:中国经济网 经济博客yHgK9aq&[7^)zQ$C0i)V#a
1、代码简练、语义易懂、学习快速、文档丰富。
6[x5T~S m02、jQuery是一个轻量级的脚本,其代码非常小巧,最新版的JavaScript包只有20K左右。中国经济网 经济博客;N q+d)g6T}UB|0ss
3、jQuery支持CSS1-CSS3,以及基本的xPath。
*]_!m |+zOw04、jQuery是跨浏览器的,它支持的浏览器包括IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+。中国经济网 经济博客3Wt6k\2_T'C
5、可以很容易的为jQuery扩展其他功能。
X!L/tp xGKbb@1u)r06、能将JS代码和HTML代码完全分离,便于代码和维护和修改。中国经济网 经济博客lc'jiCoZy
7、插件丰富,除了jQuery本身带有的一些特效外,可以通过插件实现更多功能,如表单验证、tab导航、拖放效果、表格排序、DataGrid,树形菜单、图像特效以及ajax上传等。中国经济网 经济博客5iXhS9J.f3a'c[6D*P
中国经济网 经济博客�y8dpIlf
jQuery的设计会改变你写JavaScript代码的方式,降低你学习使用JS操作网页的复杂度,提高网页JS开发效率,无论对于js初学者还是资深专家,jQuery都将是您的首选。中国经济网 经济博客_n#y#vg&x(D.ggo
jQuery适合于设计师、开发者以及那些还好者,同样适合用于商业开发,可以说jQuery适合任何JavaScript应用的地方,可用于不同的Web应用程序中。中国经济网 经济博客6A"QkJO n
官方站点:http://jquery.com/  中文站点:http://jquery.org.cn/
gB| w1Y'x\0中国经济网 经济博客!jKr bT|;_-f5JW
1.2、目的
fX P j'_K m sn3l0通过学习本文档,能够对jQuery有一个简单的认识了解,清楚JQuery与其他JS框架的不同,掌握jQuery的常用语法、使用技巧及注意事项。
iU)~ z@^0
ej2D p3}0二、使用方法
kI1A#Z `~6e(W0在需要使用JQuery的页面中引入JQuery的js文件即可。中国经济网 经济博客#m `-n%Ce(zmS#z
例如:<script. type="text/javascript" src="js/jquery.js"></script>中国经济网 经济博客,i"eYxG5J
引入之后便可在页面的任意地方使用jQuery提供的语法。中国经济网 经济博客*BI!p!m-H,`V/Z

y&L Z8W*b[HB0三、学习教程及参考资料
&?T8m;`$XSNTG/B2J0请参照《jQuery中文API手册》和http://jquery.org.cn/visual/cn/index.xml
(w.@e(J5I#ynJM r0推荐两篇不错的jquery教程:《jQuery的起点教程》和《使用 jQuery 简化 Ajax 开发》中国经济网 经济博客)FS(qY2G
(说明:以上文档都放在了【附件】中)
(B-@@_6c�w&FKr:K0中国经济网 经济博客v7J7M+Eu/]-eD
四、语法总结和注意事项中国经济网 经济博客f[S(_G
中国经济网 经济博客0D"bS4y!OAR
1、关于页面元素的引用中国经济网 经济博客5kdD,Hd}
通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法。
7h/x_[h t0
bn![1~T3kF#c02、jQuery对象与dom对象的转换
:xd�n(d,KV$Hho N0只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。
];{x{8F `9M,IE0普通的dom对象一般可以通过$()转换成jquery对象。中国经济网 经济博客$FXMV2~I%C
如:$(document.getElementById("msg"))则为jquery对象,可以使用jquery的方法。中国经济网 经济博客tH$K5e|
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。
"UE&E+K [S[0如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。
\| J J6L,B0以下几种写法都是正确的:中国经济网 经济博客+T$BrH6LN*NN G
$("#msg").html();
f�w�Bo C YR)T Bj\D0$("#msg")[0].innerHTML;
,_$N&^!Mk*w JN0$("#msg").eq(0)[0].innerHTML;
3f Nf!OD.V"Z0$("#msg").get(0).innerHTML;中国经济网 经济博客 k�}v Qo:]-|)q
中国经济网 经济博客(L"s1V+qQ(g
3、如何获取jQuery集合的某一项
{ o \,q.Fn0对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eqget(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而get(n)和索引返回的是dom元素对象。对于jquery对象只能使用jquery的方法,而dom对象只能使用dom的方法,如要获取第三个<div>元素的内容。有如下两种方法:中国经济网 经济博客/[3?[9ktIl
$("div").eq(2).html();              //调用jquery对象的方法
n"`8["mK3W]6s0$("div").get(2).innerHTML;       //调用dom的方法属性
G9c-`#Io6e2Ed0
&b {;w WiK"A7wL04、同一函数实现set和get
2aJ"gX"sIg+T0Jquery中的很多方法都是如此,主要包括如下几个:中国经济网 经济博客hz\+eva
$("#msg").html();              //返回id为msg的元素节点的html内容。中国经济网 经济博客3c,A"}'u {M
$("#msg").html("<b>new content</b>");       
LF6i JU#g,l L [0//将“<b>new content</b>” 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content中国经济网 经济博客#P4o*Hxz1l [3iXA2@

$w dh{ _:xS,a0$("#msg").text();              //返回id为msg的元素节点的文本内容。
h g y^O�d EE0$("#msg").text("<b>new content</b>");       
o*V1{_/['dD0//将“<b>new content</b>” 作为普通文本串写入id为msg的元素节点内容中,页面显示粗体的<b>new content</b>
%]M P#K;b!fE0中国经济网 经济博客 g�n8S/mV7r,jj
$("#msg").height();              //返回id为msg的元素的高度中国经济网 经济博客K y^ Y9A
$("#msg").height("300");       //将id为msg的元素的高度设为300中国经济网 经济博客;S0UACblKS
$("#msg").width();              //返回id为msg的元素的宽度
'j[`!og0$("#msg").width("300");       //将id为msg的元素的宽度设为300中国经济网 经济博客fQ Fv5jqsT
中国经济网 经济博客,N0b BiQ;q9@
$("input").val(");       //返回表单输入框的value值中国经济网 经济博客N_ t-uJ'E
$("input").val("test");       //将表单输入框的value值设为test
-V@ e-?4Z!LO"C0
)NUf@^h�y0$("#msg").click();       //触发id为msg的元素的单击事件中国经济网 经济博客H [.]1^D\k
$("#msg").click(fn);       //为id为msg的元素单击事件添加函数中国经济网 经济博客6dfc|8W(eY
同样blur,focus,select,submit事件都可以有着两种调用方法中国经济网 经济博客 `K,[nmU"i
中国经济网 经济博客"f/o4[n `(?:z]:y
5、集合处理功能中国经济网 经济博客2Qzg1tkz4NF p$m
对于jquery返回的集合内容无需我们自己循环遍历并对每个对象分别做处理,jquery已经为我们提供的很方便的方法进行集合的处理。
.J8A a{ s5S0包括两种形式:中国经济网 经济博客H@BU2i:t
$("p").each(function(i){this.style.color=['#f00','#0f0','#00f'][i]})       中国经济网 经济博客9d.rWi$z�G%D1u.`\e
//为索引分别为0,1,2的p元素分别设定不同的字体颜色。
6w3VU5X |w8Y G0
:Y!D$m |.K,b8SR-Fn0$("tr").each(function(i){this.style.backgroundColor=['#ccc','#fff'][i%2]})       
6`3i.I@],e%x0//实现表格的隔行换色效果
#v4@T$B,y0中国经济网 经济博客Aa4x lK&yF
$("p").click(function(){alert($(this).html())})              
6DxS~)n0//为每个p元素增加了click事件,单击某个p元素则弹出其内容
#p \u0`*C,c0中国经济网 经济博客c%N(z B8\w?
6、扩展我们需要的功能中国经济网 经济博客K;c]? V9X1k
$.extend({
0Z3pR+_n�H8S)s!hj0       min: function(a, b){return a < b?a:b; },中国经济网 经济博客+gF3\g;ub_E
       max: function(a, b){return a > b?a:b; }
Es s@F,]z?!j5o0});       //为jquery扩展了min,max两个方法中国经济网 经济博客y pwVS
使用扩展的方法(通过“$.方法名”调用):
&I^!L r&|`a-aq0alert("a=10,b=20,max="+$.max(10,20)+",min="+$.min(10,20));
%w1Q;O?3Y0
E^i9v7u`07、支持方法的连写中国经济网 经济博客+]] PW f:Wy"](M
所谓连写,即可以对一个jquery对象连续调用各种不同的方法。
[ r'e1E?0例如:中国经济网 经济博客p8q~&L7b(^ B)t pd�l
$("p").click(function(){alert($(this).html())})
:{"C^z%@}-}y;}/t E0.mouseover(function(){alert('mouse over event')})
$Uv s)k l f L0.each(function(i){this.style.color=['#f00','#0f0','#00f'][i]});
gFkr T hhlJ0中国经济网 经济博客7Mz1Kx^j:tb3V_I
8、操作元素的样式中国经济网 经济博客"I8Ua8lx
主要包括以下几种方式:
X7uGxP0$("#msg").css("background");              //返回元素的背景颜色中国经济网 经济博客1N'm6O,z;v\"LG
$("#msg").css("background","#ccc")       //设定元素背景为灰色中国经济网 经济博客"RQ"b6WpL
$("#msg").height(300); $("#msg").width("200");       //设定宽高
&H|X$Y*V d$Q0$("#msg").css({ color: "red", background: "blue" });//以名值对的形式设定样式
_#L9}@:U$F,? Cd?0$("#msg").addClass("select");       //为元素增加名称为select的class
Qw+\0Qw \0$("#msg").removeClass("select");       //删除元素名称为select的class
j(}|c6c_T"g0$("#msg").toggleClass("select");       //如果存在(不存在)就删除(添加)名称为select的class
;Q5taP0h(Cl0中国经济网 经济博客 ia s6ZH&iGH:dJ
9、完善的事件处理功能
+EJ(xb]Vl"m0Jquery已经为我们提供了各种事件处理方法,我们无需在html元素上直接写事件,而可以直接为通过jquery获取的对象添加事件。
C)g8s9ih_"|1{0z0如:中国经济网 经济博客,N,?lr�sbu
$("#msg").click(function(){alert("good")})       //为元素添加了单击事件
F%h%j's+R{:hQ0$("p").click(function(i){this.style.color=['#f00','#0f0','#00f'][i]})
^5mrE_t:R,N0//为三个不同的p元素单击事件分别设定不同的处理
%s8o'E![$~R8D0jQuery中几个自定义的事件:中国经济网 经济博客6e$V'|@y H#b
(1)hover(fn1,fn2):一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。
nR�{R+Zf,@Wn0//当鼠标放在表格的某行上时将class置为over,离开时置为out。
0@V7^�I _x)JK B0$("tr").hover(function(){中国经济网 经济博客V O/j4F)pc
$(this).addClass("over");中国经济网 经济博客0v b�vio9_uY
},中国经济网 经济博客NoS$I?\
       function(){中国经济网 经济博客([i2~.~\+Xc3oV
       $(this).addClass("out");
Y&[LZ`qp"F5QY0});中国经济网 经济博客W'Z�Y!{RT7A
(2)ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。
\K[ZC$|U(S0$(document).ready(function(){alert("Load Success")})
T\4k2w dp o�HL0//页面加载完毕提示“Load Success”,相当于onload事件。与$(fn)等价中国经济网 经济博客?"h(w2Tt!?"aV
(3)toggle(evenFn,oddFn): 每次点击时切换要调用的函数。如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。中国经济网 经济博客 oufi0^#O
       //每次点击时轮换添加和删除名为selected的class。中国经济网 经济博客3uN7bwP%KY%Y
       $("p").toggle(function(){
vU&h

posted on 2008-07-09 00:06  莫莫  阅读(172)  评论(0)    收藏  举报

导航