JQuery

jQuery是一套跨浏览器的JavaScript函式库，用于简化HTML与JavaScript之间的操作。约翰·雷西格（John Resig）在2006年1月的BarCamp NYC上释出了第一个版本。目前由Dave Methvin领导的团队进行开发。全球前10,000个访问最高的网站中，有65%使用了jQuery，是曾经最受欢迎的JavaScript函式库。
简介.
jQuery是开源软件，使用MIT许可证授权。 jQuery的语法设计使得许多操作变得容易，如操作-{zh-hans:文档对象;zh-hant:文件;}-（document）、选择文档对象模型（DOM）元素、创建动画效果、处理事件、以及开发Ajax程序。jQuery也提供了给开发人员在其上创建插件的能力。这使开发人员可以对底层交互与动画、高级效果和高级主题化的组件进行抽象化。模块化的方式使jQuery函数库能够创建功能强大的动态网页以及网络应用程序。
微软和诺基亚已宣布在他们的平台上绑定jQuery。微软最初在Visual Studio中集成了jQuery以便在微软自己的ASP.NET AJAX框架和ASP.NET MVC Framework中使用，而诺基亚则在他的Web运行时组件开发平台中集成了jQuery。MediaWiki自从1.16版本后也开始使用jQuery。
jQuery 1.3版以后，引入全新的层叠样式表（CSS）选择器引擎Sizzle。同时不再提供Packed版本，因为解压缩所消耗的时间，远大于所节省的下载时间，且不利于除错，且已有Google AJAX Libraries API等公开站台提供jQuery的js的引用服务，故Packed版本原本的优点已荡然无存。
特色.
jQuery有下列特色：
浏览器支持.
jQuery 3.0及以后版本支持“当前−1版本” 的Firefox、Chrome、Safari、Edge（就是说当前稳定版本以及当前稳定版本之前的一个版本），另外还支持Internet Explorer 9以后的IE版本。在移动端支持iOS 7+和Android 4.0+。
用法.
加载jQuery.
jQuery库是包含所有公共DOM、事件、效果和Ajax函数的一个JavaScript文件。可以通过链接到本地副本或公共服务器提供的许多副本之一把jQuery包含在网页中。jQuery有一个由MaxCDN托管的内容传递网路（CDN）。 Google和微软也托管了jQuery。
<syntaxhighlight lang=html5>
<script src="jquery.js"></script>
</syntaxhighlight>
也可以直接从CDN中加载jQuery：
<syntaxhighlight lang=html5>
<script
</syntaxhighlight>
使用风格.
jQuery有两种使用风格：
在jQuery中访问和操作多个DOM节点通常从用CSS选择器字符串调用codice_3函数开始。这会返回一个引用HTML页面中所有匹配元素的jQuery对象。比如codice_6，会返回一个拥有class codice_7的所有codice_8元素的jQuery对象。可以通过调用返回的jQuery对象或节点本身的方法来操作这个节点集。
无冲突模式.
jQuery还有codice_9模式，这会释放对codice_10的控制。如果其他的库也使用codice_10作为标识符的话，这个模式会比较有用。在无冲突模式下，开发人员可以使用codice_12替代codice_10而不会缺失任何功能。
典型的代码开头.
通常，jQuery是通过将初始化代码和事件处理函数放入codice_14中来使用的。当浏览器构建DOM并发送加载事件时触发。
<syntaxhighlight lang="javascript">
$(function() {
});
</syntaxhighlight>
或者
<syntaxhighlight lang="javascript">
$(fn); // 在其他地方定义的名为fn的函数，是页面加载完成时要调用的函数。
</syntaxhighlight>
或者我们也可以使用
<syntaxhighlight lang="javascript">
$(document).ready(function() {
});
</syntaxhighlight>
由于历史原因，codice_15已经成为DOM就绪时运行代码的实质性标志。但jQuery 3.0以后，鼓励开发人员使用更简短的codice_16标志。
对尚未加载的元素进行事件处理的回调函数可以作为匿名函数在codice_17内部注册。这些事件处理函数只会在触发事件时被调用。例如，下面的代码添加了一个，用于在codice_18图像元素上单击鼠标事件的处理函数。
<syntaxhighlight lang="javascript">
$(function() {
</syntaxhighlight>
链接（Chaining）.
jQuery命令通常返回一个jQuery对象，因此命令可以链接：
<syntaxhighlight lang="javascript">
$('div.test').add('p.quote').addClass('blue').slideDown('slow');
</syntaxhighlight>
这行代码找到了所有class属性为codice_19的codice_20标签，以及所有class属性为codice_21的codice_22标签的并集，对于所有匹配的元素都增加一个codice_23的class属性，并用一个动画增加了它们的高度。函数codice_3与codice_25影响匹配的元素有哪些，而codice_26和codice_27影响了引用的节点。
一些jQuery函数返回特定的值（例如codice_28）。在这些情况下，由于该值没有引用jQuery对象，链接将不起作用。
创建新的DOM元素.
除了通过jQuery对象层次结构访问DOM节点外，如果作为参数传递给$()的字符串看起来像HTML，也可以创建新的DOM元素。例如，这行代码找到ID为codice_29的HTML codice_30元素，并会增加一个value属性为"VAG"、文字为"Volkswagen"的codice_31元素：
<syntaxhighlight lang="javascript">
$('select#carmakes')
</syntaxhighlight>
工具函数.
带有codice_4前缀的jQuery函数是工具函数，或者说是影响全局属性和行为的函数。下面的例子使用了函数codice_33来遍历数组：
<syntaxhighlight lang="javascript">
$.each([1,2,3], function() {
</syntaxhighlight>
这会将“2”，“3”，“4”写入控制台。
Ajax.
使用codice_34可以执行跨浏览器的Ajax请求。其相关方法可用于加载和处理远程数据。
<syntaxhighlight lang="javascript">
$.ajax({
}).done(function(msg) {
}).fail(function(xmlHttpRequest, statusText, errorThrown) {
</syntaxhighlight>
本示例将数据codice_35和codice_36发布到服务器上的codice_37。当这个请求结束时，会调用success函数来提醒用户。如果请求失败，它会提醒用户，告知该请求的状态以及特定的错误。
异步.
请注意，上面的例子使用codice_38 的延期性来处理它的异步特性：codice_39和codice_40创建仅在异步过程完成时才运行的回调。
发布版本.
JQuery目前分成1.x版、2.x版、3.x版，这三种发布版本，后两种不再支援IE 6/7/8，前者透过jQuery Migrate plugin与先前版本保持相容。
子项目.
以下项目均是源自于Interface插件
jQuery UI.
基于jQuery的用户界面库，包括拖放、缩放、对话框、标签页等多个组件。
jQuery Tools.
jQuery Tools是一个第三方的套件，基于jQuery。包括了标签页、表单验证、滑鼠滚轮事件等多个组件。
jQuery Mobile.
基于jQuery的手机网页制作工具，jQuery Mobile的网站上包含了网页的设计工具、主题设计工具。另外jQuery Mobile的js插件包含了换页、事件等的多项功能。