jquery使用技巧

时间:2024.4.27

一,找到你了!

还记得$()这个东西吧?无论prototype还是DWR都使用了这个函数代替document.getElementById()。没错,jquery也跟风了。为达到

document.getElementById()的目的,jquery是这样写的:

代码

var someElement = $("#myId");

看起来比其他两个框架的要多了一个#,好,看看下面的用法:

代码

$("div p"); // (1)

$("div.container"); // (2)

$("div #msg"); // (3)

$("table a",context); // (4)

在prototype里看过这样的写法吗?第一行代码得到所有标签下的P元素。第二行代码得到class 为container的元素,第三行代码得到标签下面id为msg的元素。第四行代码得到context为上下文的table里面所有的连接元素。

如果你熟悉CSS,你会觉得这些写法很眼熟!对了。正是。看出奥妙了吧。jquery就是通过这样的方式来找到Dom对象里面的元素。跟CSS的选择器相类似。

[编辑本段]

二,Jquery对象?

jquery提供了很多遍历的函数,如each(fn),但是使用这些函数的前提是:你使用的对象是Jquery对象。使一个Dom对象成为一个Jquery对象很简单,通过下面一些方式(只是一部分):

代码

var a = $("#cid");

var b = $("<p>hello</p>");

var c = document.createElement("table");

var tb = $(c);

[编辑本段]

三,代替body标签的onload

这个惯例,也许是除了$()之外,用得最多的地方了。下面一段代码: 代码

$(document).ready(function(){

alert("hello");

});(1)

<body onload="alert('hello');">(2)

上面两段代码是等价的。但代码1的好处是做到表现和逻辑分离。并且可以在不同的js文件中做相同的操作,即$(document).ready (fn)可以在一个页面中重复出现,而不会冲突。基本上Jquery的很多plugin都是利用这个特性,正因为这个特性,多个plugin共同使用起来,在初始化时不会发生冲突。

不管怎么说,这个惯例可以分离javascrīpt与HTML。推荐使用。

[编辑本段]

四,事件机制

我大量使用的事件可能就是button的onclick了。以前习惯在input 元素上写onclick = "fn()",使用jquery可以使javascrīpt代码与html代码分离,保持HTML的清洁,还可以很轻松地绑定事件,甚至你可以不知道“事件”这个名词。

代码

$(document).ready(function(){

$("#clear").click(

function(){

alert("i am about to clear the table");

}

);

$("form[0]").submit(validate);

});

function validate(){

//do some form validation

}

[编辑本段]

五,同一函数实现get\set

代码

$("#msg").html();

$("#msg").html("hello");

上面两行代码,调用了同样的函数。但结果却差别很大。

第一行是返回指定元素的HTML值,第二行则是将hello这串字符设置到指定元素中。jquery的函数大部分有这样的特性。

[编辑本段]

六,ajax

这是一个ajax横行的时代。多少人,了不了解ajax的都跟着用上一把。呵。使用jquery实现ajax同样简单异常

代码

$.get("search.do",{id:1},rend);

function rend(xml){

alert(xml);

} (1)

$.post("search.do",{id:1},rend);

function rend(xml){

alert(xml);

} (2)

$("#msg").ajaxStart(function(){

this.html("正在加载。。。。");

});(3)

$("#msg").ajaxSuccess(function(){

this.html("加载完成!");

});(4)

这些都是较常用的方法,get和post用法一样。第一个参数是异步请求的url,第二个为参数,第三个回调方法。

3,4的方法会在指定的Dom对象上绑定响应ajax执行的事件。当然,jquery的AJAX相关的函数不仅是这些,有兴趣可以去研究再多。

[编辑本段]

七,渐入淡出

代码

$("#msg").show("fast");

$("#msg").hide("slow");

$("#msg").fadeIn();

$("#msg").fadeOut();

没错,上面两行代码已经分别实现了一个id为Msg的jquery对象的渐入和淡出。做一个像Gmail一样的动态加载通知条,用jquery就那么简单。两个函数接受的参数除了快慢等,还可以接收整型,作为渐入或淡出的完成时间,单位为MS。

[编辑本段]

八,plugin

这也是一个插件的时代。

jquery插件给我的感觉清一色的清洁,简单。如Jtip,要使用它的功能,只需要在你的元素的class上加上Jtip,并引入jtip.js及其样式即可以了。其他事情插件全包。我喜欢jquery的一个重要原因是发现她已经有了很多很好,很精彩的插件。

写得很烂。可能大家看不出jquery的好处。嗯,光听是没用的,试用一下吧。你会发觉很有趣。

暂时告一段落吧。待有新的发现再来分享。

加一些Jquery的资源:

/index.xml 很好的API查询站点

http://jquery.com/demo/thickbox/ 知道lightBox吧,看看Jquery是怎样实现相同的东西

/visual/cn/index.xml //不错的JQUERY 中文学习 推荐 jquery来源

jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的J&ouml;rn Zaefferer,罗马尼亚的Stefan Petre等等。

jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。

它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。

jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。

jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。

jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。

jQuery的最新release版本是1.2.6。

官方下载地址为:/files/jquery-1.2.6.min.js

微软的visual studio 2008 sp1支持对jquery的动态提示,只要在代码页导入对应的vsdoc脚本就可以。

目前为止,jQuery的最新版本为1.4

扩展阅读:

1.1. jquery官方站点

2.2. ajax之家

3.3. jquery中文社区

4.4. jQuery 1.4版本的15个新功能

jquery技巧总结

一、简介

1.1、概述

随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype、YUI、jQuery、mootools、Bindows以及国内的JSVM框架等,通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项目的开发速度。

jQuery是继prototype之后的又一个优秀的Javascript框架。它是由 John Resig 于 2006 年初创建的,它有助于简化 JavaScript? 以及Ajax 编程。有人使用这样的一比喻来比较prototype和jQuery:prototype就像Java,而jQuery就像ruby. 它是一个简洁快速灵活的JavaScript框架,它能让你在你的网页上简单的操作文档、处理事件、实现特效并为Web页面添加Ajax交互。

它具有如下一些特点:

1、代码简练、语义易懂、学习快速、文档丰富。

2、jQuery是一个轻量级的脚本,其代码非常小巧,最新版的JavaScript包只有20K左右。

3、jQuery支持CSS1-CSS3,以及基本的xPath。

4、jQuery是跨浏览器的,它支持的浏览器包括IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+。

5、可以很容易的为jQuery扩展其他功能。

6、能将JS代码和HTML代码完全分离,便于代码和维护和修改。

7、插件丰富,除了jQuery本身带有的一些特效外,可以通过插件实现更多功能,如表单验证、tab导航、拖放效果、表格排序、DataGrid,树形菜单、图像特效以及ajax上传等。

jQuery的设计会改变你写JavaScript代码的方式,降低你学习使用JS操作网页的复杂度,提高网页JS开发效率,无论对于js初学者还是资深专家,jQuery都将是您的首选。

jQuery适合于设计师、开发者以及那些还好者,同样适合用于商业开发,可以说jQuery适合任何JavaScript应用的地方,可用于不同的Web应用程序中。

官方站点:http://jquery.com/ 中文站点:/

1.2、目的

通过学习本文档,能够对jQuery有一个简单的认识了解,清楚JQuery与其他JS框架的不同,掌握jQuery的常用语法、使用技巧及注意事项。

二、使用方法

在需要使用JQuery的页面中引入JQuery的js文件即可。

例如:<script type="text/javascript" src="js/jquery.js"></script>

引入之后便可在页面的任意地方使用jQuery提供的语法。

三、学习教程及参考资料

请参照《jQuery中文API手册》和/visual/cn/index.xml

推荐两篇不错的jquery教程:《jQuery的起点教程》和《使用 jQuery 简化 Ajax 开发》

(说明:以上文档都放在了【附件】中)

四、语法总结和注意事项

1、关于页面元素的引用

通过jquery的$()引用元素包括通过id、class、元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用dom定义的方法。

2、jQuery对象与dom对象的转换

只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时要注意操作的是dom对象还是jquery对象。

普通的dom对象一般可以通过$()转换成jquery对象。

如:$(document.getElementById("msg"))则为jquery对象,可以使用jquery的方法。

由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,一般可通过索引取出。

如:$("#msg")[0],$("div").eq(1)[0],$("div").get()[1],$("td")[5]这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。

以下几种写法都是正确的:

$("#msg").html();

$("#msg")[0].innerHTML;

$("#msg").eq(0)[0].innerHTML;

$("#msg").get(0).innerHTML;

3、如何获取jQuery集合的某一项

对于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eq或get(n)方法或者索引号获取,要注意,eq返回的是jquery对象,而get (n)和索引返回的是dom元素对象。对于jquery对象只能使用jquery的方法,而dom对象只能使用dom的方法,如要获取第三个< div>元素的内容。有如下两种方法:

$("div").eq(2).html(); //调用jquery对象的方法

$("div").get(2).innerHTML; //调用dom的方法属性

4、同一函数实现set和get

Jquery中的很多方法都是如此,主要包括如下几个:

$("#msg").html(); //返回id为msg的元素节点的html内容。

$("#msg").html("<b>new content</b>");

//将“<b>new content</b>” 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content

$("#msg").text(); //返回id为msg的元素节点的文本内容。

$("#msg").text("<b>new content</b>");

//将“<b>new content</b>” 作为普通文本串写入id为msg的元素节点内容中,页面显示粗体的<b>new content</b>

$("#msg").height(); //返回id为msg的元素的高度

$("#msg").height("300"); //将id为msg的元素的高度设为300

$("#msg").width(); //返回id为msg的元素的宽度

$("#msg").width("300"); //将id为msg的元素的宽度设为300

$("input").val("); //返回表单输入框的value值

$("input").val("test"); //将表单输入框的value值设为test

$("#msg").click(); //触发id为msg的元素的单击事件

$("#msg").click(fn); //为id为msg的元素单击事件添加函数

同样blur,focus,select,submit事件都可以有着两种调用方法

5、集合处理功能

对于jquery返回的集合内容无需我们自己循环遍历并对每个对象分别做处理,jquery已经为我们提供的很方便的方法进行集合的处理。

包括两种形式:

$("p").each(function(i){this.style.color=['#f00','#0f0','#00f']})

//为索引分别为0,1,2的p元素分别设定不同的字体颜色。

$("tr").each(function(i){this.style.backgroundColor=['#ccc','#fff'][i%2]})

//实现表格的隔行换色效果

$("p").click(function(){.html())})

//为每个p元素增加了click事件,单击某个p元素则弹出其内容

6、扩展我们需要的功能

$.extend({

min: function(a, b){return a < b?a:b; },

max: function(a, b){return a > b?a:b; }

}); //为jquery扩展了min,max两个方法

使用扩展的方法(通过“$.方法名”调用):

+",min="+$.min(10,20));

7、支持方法的连写

所谓连写,即可以对一个jquery对象连续调用各种不同的方法。

例如:

$("p").click(function(){.html())})

.mouseover(function(){})

.each(function(i){this.style.color=['#f00','#0f0','#00f']});

8、操作元素的样式

主要包括以下几种方式:

$("#msg").css("background"); //返回元素的背景颜色

$("#msg").css("background","#ccc") //设定元素背景为灰色

$("#msg").height(300); $("#msg").width("200"); //设定宽高

$("#msg").css({ color: "red", background: "blue" });//以名值对的形式设定样式

$("#msg").addClass("select"); //为元素增加名称为select的class

$("#msg").removeClass("select"); //删除元素名称为select的class

$("#msg").toggleClass("select"); //如果存在(不存在)就删除(添加)名称为select的class

9、完善的事件处理功能

Jquery已经为我们提供了各种事件处理方法,我们无需在html元素上直接写事件,而可以直接为通过jquery获取的对象添加事件。

如:

$("#msg").click(function(){}) //为元素添加了单击事件

$("p").click(function(i){this.style.color=['#f00','#0f0','#00f']})

//为三个不同的p元素单击事件分别设定不同的处理

jQuery中几个自定义的事件:

(1)hover(fn1,fn2):一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。

//当鼠标放在表格的某行上时将class置为over,离开时置为out。

$("tr").hover(function(){

$(this).addClass("over");

},

function(){

$(this).addClass("out");

});

(2)ready(fn):当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。

$(document).ready(function(){})

//页面加载完毕提示“Load Success”,相当于onload事件。与$(fn)等价

(3)toggle(evenFn,oddFn): 每次点击时切换要调用的函数。如果点击了一个匹配的元素,则触发指定的第一个函数,当再次点击同一元素时,则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用。

//每次点击时轮换添加和删除名为selected的class。

$("p").toggle(function(){

$(this).addClass("selected");

},function(){

$(this).removeClass("selected");

});

(4)trigger(eventtype): 在每一个匹配的元素上触发某类事件。

例如:

$("p").trigger("click"); //触发所有p元素的click事件

(5)bind(eventtype,fn),unbind(eventtype): 事件的绑定与反绑定

从每一个匹配的元素中(添加)删除绑定的事件。

例如:

$("p").bind("click", function(){.text());}); //为每个p元素添加单击事件

$("p").unbind(); //删除所有p元素上的所有事件

$("p").unbind("click") //删除所有p元素上的单击事件

10、几个实用特效功能

其中toggle()和slidetoggle()方法提供了状态切换功能。

如toggle()方法包括了hide()和show()方法。

slideToggle()方法包括了slideDown()和slideUp方法。

11、几个有用的jQuery方法

$.browser.浏览器类型:检测浏览器类型。有效参数:safari, opera, msie, mozilla。如检测是否ie:$.browser.isie,是ie浏览器则返回true。

$.each(obj, fn):通用的迭代函数。可用于近似地迭代对象和数组(代替循环)。

$.each( [0,1,2], function(i, n){ ; });

等价于:

var tempArr=[0,1,2];

for(var i=0;i<tempArr.length;i++){

;

}

也可以处理json数据,如

$.each( { name: "John", lang: "JS" }, function(i, n){ ; });

结果为:

Name:name, Value:John

Name:lang, Value:JS

$.extend(target,prop1,propN):用一个或多个其他对象来扩展一个对象,返回这个被扩展的对象。这是jquery实现的继承方式。

如:

$.extend(settings, options);

//合并settings和options,并将合并结果返回settings中,相当于options继承setting并将继承结果保存在setting中。

var settings = $.extend({}, defaults, options);

//合并defaults和options,并将合并结果返回到setting中而不覆盖default内容。

可以有多个参数(合并多项并返回)

$.map(array, fn):数组映射。把一个数组中的项目(处理转换后)保存到到另一个新数组中,并返回生成的新数组。

如:

var tempArr=$.map( [0,1,2], function(i){ return i + 4; });

tempArr内容为:[4,5,6]

var tempArr=$.map( [0,1,2], function(i){ return i > 0 ? i + 1 : null; });

tempArr内容为:[2,3]

$.merge(arr1,arr2):合并两个数组并删除其中重复的项目。

如:$.merge( [0,1,2], [2,3,4] ) //返回[0,1,2,3,4]

$.trim(str):删除字符串两端的空白字符。

如:$.trim(" hello, how are you? "); //返回"hello,how are you? "

12、解决自定义方法或其他类库与jQuery的冲突

很多时候我们自己定义了$(id)方法来获取一个元素,或者其他的一些js类库如prototype也都定义了$方法,如果同时把这些内容放在一起就会引起变量方法定义冲突,Jquery对此专门提供了方法用于解决此问题。

使用jquery中的jQuery.noConflict();方法即可把变量$的控制权让渡给第一个实现它的那个库或之前自定义的$方法。之后应用 Jquery的时候只要将所有的$换成jQuery即可,如原来引用对象方法$("#msg")改为jQuery("#msg")。

如:

jQuery.noConflict();

// 开始使用jQuery

jQuery("div p").hide();

// 使用其他库的 $()

$("content").style.display = 'none';

更多相关推荐:
jquery快速入门总结很给力的

且确实可以很轻松地做出许多复杂的效果虽然jQuery上手简单比其他库容易学会但是要全面掌握却不轻松因为它涉及到网页开发的方方面面提供的各种方法和内部变化有上千种之多初学者常常感到入门很方便提高很困难目前互联网上...

jQuery学习总结

jQuery学习总结因为项目需要同时也因为兴趣在近一段时间研究和使用了jQuery它真的是太强大了代码非常的优雅和简洁好后悔现在才开始了解它虽然目前网络上关于jQuery的资料学习心得教程多得你看不完但我还是想...

jquery心得、技巧、总结

Jquery开始documentreadyfunction可缩写成function选择器引号中可以有多个一起选择id要求id唯一classclass名对应的元素HTML标签所有标签元素对象所有元素aba元素下的...

jquery学习总结

一选择网页元素jQuery的基本设计和主要用法就是quot选择某个网页元素然后对其进行某种操作quot这是它区别于其他函数库的根本特点使用jQuery的第一步往往就是将一个选择表达式放进构造函数jQuery简写...

jQuery总结与注意事项

jQuery总结与注意事项刚开始学了JQuqery众多的get等等符号早已把我搞晕了暂时就放弃了后来学习ASPNETAJAX在微软的领导下逐渐由服务器端转向客户端编程激起我客户端编程的兴趣才想起学习一下了Jqu...

jquery总结学习资料JQuery总结

一简介11概述随着WEB20及ajax思想在互联网上的快速发展传播陆续出现了一些优秀的Js框架其中比较著名的有PrototypeYUIjQuerymootoolsBindows以及国内的JSVM框架等通过将这些...

jQuery总结

1jQuery是JavaScript语法写的一些函数类内部仍然是调用JavaScript特点a解决了不同浏览器的兼容问题b对于不同控件具有统一的操作方式c体积小使用简单方便d链式编程隐式迭代插件丰富开源免费e让...

用jquery获取form表单值的方法总结

用jquery获取form表单值的方法总结用jquery获取form表单值的方法总结jquery获取radio单选按钮的值inputname39items39checkedvaljqueryradio取值che...

jQuery 技巧总结

一简介11概述随着WEB20及ajax思想在互联网上的快速发展传播陆续出现了一些优秀的Js框架其中比较著名的有PrototypeYUIjQuerymootoolsBindows以及国内的JSVM框架等通过将这些...

Jquery总结

Jquery总结一Jquery中的基本选择器1id选择器2class选择器3元素选择器器45并列选择器用英文的逗号区分二重点介绍了Jquery对象转换成DOM对象的方法1Jquery对象返回的是一个数组对象可以...

Jquery学习与总结

Jquery学习与总结,内容附图。

jquery总结

jquery技巧总结收藏一简介11概述随着WEB20及ajax思想在互联网上的快速发展传播陆续出现了一些优秀的Js框架其中比较著名的有PrototypeYUIjQuerymootoolsBindows以及国内的...

jquery总结(27篇)