jQuery
✍ dations ◷ 2025-10-26 11:35:08 #jQuery
jQuery是一套跨浏览器的JavaScript库,用于简化HTML与JavaScript之间的操作。约翰·雷西格(John Resig)在2006年1月的BarCamp NYC上发布了第一个版本。目前由Dave Methvin领导的团队进行开发。全球前10,000个访问最高的网站中,有65%使用了jQuery,是曾经最受欢迎的JavaScript库。
jQuery是开源软件,使用MIT许可证授权。 jQuery的语法设计使得许多操作变得容易,如操作文档对象(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库是包含所有公共DOM、事件、效果和Ajax函数的一个JavaScript文件。可以通过链接到本地副本或公共服务器提供的许多副本之一把jQuery包含在网页中。jQuery有一个由MaxCDN托管的内容分发网络(CDN)。 Google和微软也托管了jQuery。
<script src="jquery.js"></script>
也可以直接从CDN中加载jQuery:
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
使用风格
jQuery有两种使用风格:
在jQuery中访问和操作多个DOM节点通常从用CSS选择器字符串调用$函数开始。这会返回一个引用HTML页面中所有匹配元素的jQuery对象。比如$("div.test"),会返回一个拥有class test的所有div元素的jQuery对象。可以通过调用返回的jQuery对象或节点本身的方法来操作这个节点集。
jQuery还有.noConflict()模式,这会释放对$的控制。如果其他的库也使用$作为标识符的话,这个模式会比较有用。在无冲突模式下,开发人员可以使用jQuery替代$而不会缺失任何功能。
通常,jQuery是通过将初始化代码和事件处理函数放入$()中来使用的。当浏览器构建DOM并发送加载事件时触发。
$(function() { // 这个匿名函数是页面加载完成时要调用的函数。 // jQuery代码,事件处理回调写在这里。}); 或者
$(fn); // 在其他地方定义的名为fn的函数,是页面加载完成时要调用的函数。
或者我们也可以使用
$(document).ready(function() { // 这是页面完成加载时要调用的函数。 // jQuery代码,事件处理回调写在这里。});由于历史原因,$(document).ready(callback)已经成为DOM就绪时运行代码的实质性标志。但jQuery 3.0以后,鼓励开发人员使用更简短的$(handler)标志。
对尚未加载的元素进行事件处理的回调函数可以作为匿名函数在.ready()内部注册。这些事件处理函数只会在触发事件时被调用。例如,下面的代码添加了一个,用于在img图像元素上单击鼠标事件的处理函数。
$(function() { $('img').on('click', function() { // 处理页面中任何img元素上的click事件。 });});链接(Chaining)
jQuery命令通常返回一个jQuery对象,因此命令可以链接:
$('div.test').add('p.quote').addClass('blue').slideDown('slow');这行代码找到了所有class属性为test的div标签,以及所有class属性为quote的p标签的并集,对于所有匹配的元素都增加一个blue的class属性,并用一个动画增加了它们的高度。函数$与add影响匹配的元素有哪些,而addClass和slideDown影响了引用的节点。
一些jQuery函数返回特定的值(例如$('#input-user-email').val())。在这些情况下,由于该值没有引用jQuery对象,链接将不起作用。
除了通过jQuery对象层次结构访问DOM节点外,如果作为参数传递给$()的字符串看起来像HTML,也可以创建新的DOM元素。例如,这行代码找到ID为carmakes的HTML select元素,并会增加一个value属性为"VAG"、文字为"Volkswagen"的option元素:
$('select#carmakes') .append($('<option>') .attr({ value:"VAG" }) .append("Volkswagen"));工具函数
带有$.前缀的jQuery函数是工具函数,或者说是影响全局属性和行为的函数。下面的例子使用了函数each()来遍历数组:
$.each(, function() { console.log(this + 1);});这会将“2”,“3”,“4”写入控制台。
使用$.ajax()可以执行跨浏览器的Ajax请求。其相关方法可用于加载和处理远程数据。
$.ajax({ type: 'POST', url: '/process/submit.php', data: { name : 'John', location : 'Boston' },}).done(function(msg) { alert('Data Saved: ' + msg);}).fail(function(xmlHttpRequest, statusText, errorThrown) { alert('Your form submission failed.nn' + 'XML Http Request: ' + JSON.stringify(xmlHttpRequest) + ',nStatus Text: ' + statusText + ',nError Thrown: ' + errorThrown);});本示例将数据name=John和location=Boston发布到服务器上的/process/submit.php。当这个请求结束时,会调用success函数来提醒用户。如果请求失败,它会提醒用户,告知该请求的状态以及特定的错误。
请注意,上面的例子使用$.ajax() 的延期性来处理它的异步特性:.done()和.fail()创建仅在异步过程完成时才运行的回调。
JQuery目前分成1.x版、2.x版、3.x版,这三种发布版本,后两种不再支持IE 6/7/8,前者透过jQuery Migrate plugin与先前版本保持兼容。
以下项目均是源自于Interface插件
基于jQuery的用户界面库,包括拖放、缩放、对话框、标签页等多个组件。
jQuery Tools是一个第三方的包,基于jQuery。包括了标签页、窗体验证、鼠标滚轮事件等多个组件。
基于jQuery的手机网页制作工具,jQuery Mobile的网站上包含了网页的设计工具、主题设计工具。另外jQuery Mobile的js插件包含了换页、事件等的多项功能。
相关
- 谷氨酸脱氢酶谷氨酸脱氢酶是变构酶的一种,该酶通过氧化脱氢、转氨、联合脱氢和非氧化脱氢,等反应在体内产生。其中以联合脱氢最为重要,它催化可逆反应。EC 1.1/2/3/4/5/6/7/8/9/10/11/12/13
- 杜尚别杜尚别(塔吉克斯坦语:Душанбе / Duşanbe)是中亚国家塔吉克斯坦的首都,位于北纬38.5度、东经68.8度,人口在2000年统计约有53万6千人。又译做杜桑贝、杜夏贝、杜山比、杜尚
- 舍希德沙希德,又称舍希德(英语:Shahid。阿拉伯语原意是“证人”,也可以解为“殉教烈士”。源于《可兰经》。沙希德一词是用以尊称穆斯林为履行宗教戒律捍卫自己的信仰者,只要是为了伊斯
- 华尔街1号华尔街一号(One Wall Street),前称欧文信托公司大厦、纽约银行大厦(1988年后)、纽约梅隆银行大厦(2007年),是一座位于纽约市曼哈顿银行总部建筑。位于纽约市金融区,华尔街和百老汇家
- 珍妮佛·贝尔珍妮佛·贝尔(英语:Jennifer Beals,1963年12月19日-),美国演员。为欧非混血,父亲是黑人,母亲是爱尔兰裔白人,父亲在她10岁时去世,她在青少年时期曾为模特儿,后参与演出1983年电影《闪舞
- 黄家瑞黄家瑞(?-1645年),字祯臻,济宁府滕县人,明朝、南明政治人物。黄家瑞是万历十一年进士黄中色的孙子、万历三十七年举人黄昌年的儿子,在天启七年(1627年)成为举人,到崇祯七年(1634年)中进士
- 法荷航货运法国航空-荷兰航空货运(法语:Air France-KLM Cargo)是是法荷航集团旗下子公司,总部位于巴黎夏尔·戴高乐国际机场,同时也是法国国家航空公司。
- 大辛庄镇 (定州市)大辛庄镇,是中华人民共和国河北省保定市定州市下辖的一个乡镇级行政单位。大辛庄镇下辖以下地区:大辛庄村、小寨屯社区村、中古屯村、土良村、北旺村、东四旺村、西四旺村、齐
- 戴安娜·曼纳斯戴安娜·曼纳斯(英语:Diana Olivia Winifred Maud Cooper, Viscountess Norwich,旧姓:Lady Diana Manners,1892年8月29日-1986年6月16日)是一个突出的社会人物,主要在伦敦和巴黎活跃
- 塔雷克·阿济兹·班奈萨塔雷克·阿济兹·班奈萨(1991年4月7日-)是一名阿尔及利亚摔跤运动员,曾代表国家参加2012年伦敦奥运的男子古典式摔跤60公斤级比赛,并未获得奖牌