小结:
介绍了JQuery的由来和优势,将几个JavaScript库进行对比,此外还约定了jQuery的代码风格和变量风格;然后介绍了jQuery对象和DOM对象之间的区别以及相互转换,然后介绍了如何解决jQuery和其他JavaScript库冲突的问题;最后介绍了几个jQuery自动提示代码功能的插件
JavaScript自身存在3个弊端,即复杂的文档对象模型(DOM)、不一致的浏览器实现和便捷的开发、调试工具的缺乏。jQuery的兴起解决了这些问题
Prototype、Dojo、YUI、Ext Js、MooTools、JQuery
每个每个JavaScript库都有自己的优点和缺点、支持者和反对者,但是从近几年的Google访问量趋势,jQuery的关注度一直稳步上升,逐渐从其他JavaScript库中脱颖而出,成为web开发人员的最佳选择
现在的jQuery团队主要包括核心库、UI、插件和jQuery Mobile等开发人员以及推广和网站设计、维护人员。
jQuery强调的是写的少做的多:
①轻量级:jQuery的压缩工具一直变化,现在用的是UglifyJS
②强大的选择器
③出色的DOM操作的封装
④可靠的事件处理机制
⑤完善的ajax
⑥不污染顶级变量:JQuery只建立一个名为jQuery的对象,其所有函数方法都在这个对象之下,别名$也可以随时交出控制权,绝对不会污染其他对象,该特性可以使得jQuery和其他JavaScript库共存而不用考虑后期可能的冲突。
⑦出色的浏览器兼容性
⑧链式操作方式:即对发生在同一个jQuery对象上的一组动作,可以直接连写而无需重复获取对象
⑨隐式迭代
⑩行为层与结构层的分离
⑪丰富的插件支持
⑫完善的文档
⑬开源:任何人都可以自由使用并提出改进意见
jQuery库的类型分为两种,jQuery.js(开发板) 和 jquery.min.js(生产版)
①对于同一个对象不超过3个操作的,可以直接写成一行
②对于同一个对象的较多操作,建议每行写一个操作
③对于多个对象的少量操作可以每个对象写一行,如果涉及子元素适当缩进
④对于复杂的语句应写上注释
DOM对象:可以通过JavaScript中的getelementbyid和getElementByTagName来获取元素节点,像这样得到的DOM元素就是DOM对象
jQuery对象:jQuery对象就是通过jQuery包装DOM对象后产生的对象。
Eg:$(“#foo”).html()等同于document.getElementById(“#foo”).innrtHTML。jQuery对象和DOM对象不能互相使用对方的方法
①jQuery对象转换成DOM对象
两种方法:
var $cr=$(“#cr”) //jQuery对象
Var cr=$cr[0]; //DOM对象
var $cr=$(“#cr”) //jQuery对象
Var cr=$cr.Get(0); //DOM对象
②DOM对象转换成jQuery对象
对于一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了
Var cr=document.getElementById(“#cr”); //DOM对象
Var $cr=$(cr); //jQuery对象
注:平时用到的jQuery对象都是通过$()函数制造出来的,他就是一个jQuery对象的制造工厂。
①jQuery在其他库之后导入
1)都加载完毕后可以调用jQuery.noConflict()函数将变量$的控制权移交给其他JavaScript库
jQuery.noConflict();
jQuery(function(){
jQuery(“p”).click(function(){
Alert(jQuery(this).text());
})
})
2)如果确保想要不会出现冲突,且想自定义一个快捷方式
Var $j=jQuery.noConflict(); //自定义备用名称,如jq,$J,a等等
$j(function(){
$j(“p”).click(function(){
Alert($j(this).text());
})
})
3)如果不想给jQuery自定义这些备用名称,还想使用$而不管其他库的$()方法,同时不想冲突,可有如下两种解决办法
其一:
jQuery.noConflict();
jQuery(function($){
$(“p”).click(function(){
Alert($(this).text());
})
})
其二:
jQuery.noConflict();
(function($){
$(function(){
$(“p”).click(function(){
Alert($(this).text());
})
})
②jQuery在其他库之前导入(代码省略引用)
可以直接使用jQuery,其他库的快捷方式用$(),而且无需调用jQuery.noConflict()函数。
jQuery.noConflict();
jQuery(function(){
jQuery(“p”).click(function(){
Alert(jQuery(this).text());
});
});
})(jQuery);
可使用任意文本编辑器进行开发,例如EditPlus,VIM,Visual Studio,Dreamweaver,Aptanta等,可通过下载插件增加自动提示代码功能。