jQuery教程 - 认识jQuery
本文参考摘自《锋利的jQuery》一书。
随着Web 2.0的兴起,JavaScript越来越受到重视,一系列JavaScript库也蓬勃发展起来。从早期的Prototype、Dojo到2006年的jQuery,再到2007年的Ext JS,互联网正在掀起一场JavaScript风暴。jQuery以其独特优雅的姿态,始终处于这场风暴的中心,受到越来越多的人的追捧。
JavaScript和JavaScript库
JavaScript简介
在正式介绍jQuery之前,首先有必要先了解一下JavaScript。
JavaScript是Netscape公司开发的一种脚本语言(scripting language)。JavaScript的出现使得网页和用户之间实现了一种实时的、动态的和交互的关系,使得网页包含更多活跃的元素和更加精彩的内容。JavaScript自身存在三个弊端,即复杂的文档对象模型(DOM),不一致的浏览器实现和缺乏便捷的开发、调试工具。
正当JavaScript从开发者的视线中渐渐隐去时,一种新型的基于JavaScript的Web技术——Ajax(Asynchronous JavaScript And XML,异步的JavaScript和XML)诞生了。而使人们真正认识到Ajax技术的强大的导火索是Google公司推出的一系列新型web应用,例如Gmail、Google Suggest和Google Map等。互联网中基于JavaScript的应用也越来越多,使JavaScript不再是一种仅仅用于制作web页面的简单脚本。
加入jQuery
jQuery简介
jQuery是继Prototype之后又一个优秀的JavaScript库,是一个由John Resig创建于2006年1月的开源项目。现在的jQuery团队主要包括核心库、UI和插件等开发人员以及推广和网站设计维护人员。团队中有三个核心人物:John Resig、Brandon Aaron和Jorn Zaefferer。
jQuery凭借简介的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax的操作。其独特而又优雅的代码风格改变了JavaScript程序员的设计思路和编写程序的方式。总之,无论是网页设计师、后台开发者、业余爱好者还是项目管理者,也无论是JavaScript初学者还是JavaScript高手,都有足够多的理由去学习jQuery。
jQuery的优势
jQuery强调的理念是写得少,做得多(write less, do more)。jQuery独特的选择器、链式的DOM操作、事件处理机制和封装完善的Ajax都是其他JavaScript库望尘莫及的。概括起来,jQuery有以下优势:
(1)轻量级
jQuery非常轻巧,采用Dean Edwards编写的Packer()压缩后,大小不到30KB。如果使用Min版并在服务器端启用Gzip压缩后,大小只有18KB。
(2)强大的选择器
jQuery允许开发者使用从CSS1到CSS3几乎所有的选择器,以及jQuery独创的高级而复杂的选择器。另外还可以加入插件使其支持XPath选择器,甚至开发者可以编写属于自己的选择器。由于jQuery支持选择器这一特性,因此有一定CSS经验的开发人员可以很容易地切入到jQuery的学习中来。
(3)出色的DOM操作的封装
jQuery封装了大量常用的DOM操作,使开发者在编写DOM操作相关程序的时候能够得心应手。jQuery轻松地完成各种原本非常复杂的操作,让JavaScript新手也能写出出色的程序。
(4)可靠的事件处理机制
jQuery的事件处理机制吸收了JavaScript专家Dean Edwards编写的事件处理函数的精华,使得jQuery在处理事件绑定的时候相当可靠。在预留退路(graceful degradtion)、循序渐进以及非吸入式(Unobtrusive)编程思想方面,jQuery也做得非常不错。
(5)完善的Ajax
jQuery将所有的Ajax操作封装到一个函数$.ajax()里,使得开发者处理Ajax的时候能够专心处理业务逻辑而无需关心复杂的浏览器兼容性和XMLHttpRequest对象的创建和使用的问题。
(6)不污染顶级变量
jQuery只建立一个名为jQuery的对象,其所有的函数方法都在这个对象之下。其别名“$”也可以随时交出控制权,绝对不会污染其他的对象。该特性使jQuery可以在其他JavaScript库中共存,在项目中放心地引用而不需考虑到后期可能存在的冲突。
(7)出色的浏览器兼容性
作为一个流行的JavaScript库,浏览器的兼容性是必须具备的条件之一。jQuery能够在IE 6.0+、FF 2+、Safari 2.0+和Opera 9.0+下正常运行。jQuery同时修复了浏览器之间的差异,使开发者不必再开展项目前建立浏览器兼容库。
(8)链式操作方式
jQuery中最有特色的莫过于它的链式操作方式——即对发生在同一个jQuery对象上的一组动作,可以直接连写而无需重复获取对象。这一特点使jQuery的代码无比优雅。
(9)隐式迭代
当用jQuery找到带有“.myClass”类的全部元素,然后隐藏它们,无需循环遍历每一个返回的元素。相反,jQuery里的方法都被设计成自动操作对象集合,而不是单独的对象,这使得大量的循环结构变得不再必要,从而大幅地减少了代码量。
(10)行为层与结构层的分离
开发者可以使用jQuery选择器选中的元素,然后直接给元素添加事件。这种行为层与结构层完全分离的思想,可以使jQuery开发人员和HTML或其他页面开发人员各司其职,摆脱过去开发冲突或个人单干的开发模式。同时,后期维护也非常方便,不需要在HTML代码中寻找某些函数和重复修改HTML代码。
(11)丰富的插件支持
jQuery的易扩展性,吸引了来自全球的开发者来编写jQuery的扩展插件。目前已经有超过上千种的官方插件支持,而且还不断有新插件面世。
(12)完善的文档
jQuery的文档非常丰富,现阶段多为英文文档,中文文档相对较少,不过这对提高英文阅读能力有很大的帮助。很多热爱jQuery的团队都在努力完善jQuery的中文文档。
(13)开源
jQuery是一个开源的产品,任何人都可以自由地使用并提出修改意见。