jQuery 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
jQuery 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
jQuery 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 GPL/MIT
操作系统 跨平台
软件类型 开源软件
开源组织 Linux 基金会
地区 不详
投 递 者 不详
适用人群 未知
收录时间 2008-09-05

软件简介

jQuery是一个快速,小型且功能丰富的JavaScript库。借助易于使用的API(可在多种浏览器中使用),它使HTML文档的遍历和操纵,事件处理,动画和Ajax等事情变得更加简单。兼具多功能性和可扩展性,jQuery改变了数百万人编写JavaScript的方式。

jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

语言特点

  • 快速获取文档元素
  • 提供漂亮的页面动态效果
  • 创建AJAX无刷新网页
  • 提供对JavaScript语言的增强
  • 增强的事件处理
  • 更改网页内容

jQuery的由来

2005年8月,John Resig提议改进Prototype的Behaviour库,于是他在博客上发表了自己的想法。 当时John Resig的想法很简单:他发现这种语法相对现有的JavaScript库更为简洁。但他没想到的是,这篇文章一经发布就引起了业界的关注。于是John开始认真思考着这件事情(编写语法更为简洁的JavaScript程序库)。

直到2006年1月14日,John Resig正式宣布以jQuery的名称发布自己的程序库。随之而来的是jQuery的快速发展。 2006年1月John Resig等人创建了jQuery;8月,jQuery的第一个稳定版本,并且已经支持CSS选择符、事件处理和AJAX交互。

工作原理

jQuery的模块可以分为3部分:入口模块、底层支持模块和功能模块。在构造jQuery对象模块中,如果在调用构造函数jQuery()创建jQuery对象时传入了选择器表达式,则会调用选择器Sizzle(一款纯JavaScript实现的CSS选择器引擎,用于查找与选择器表达式匹配的元素集合)遍历文档,查找与之匹配的DOM元素,并创建一个包含了这些DOM元素引用的jQuery对象。

在底层支持模块中,回调函数列表模块用于增强对回调函数的管理,支持添加、移除、触发、锁定、禁用回调函数等功能;异步队列模块用于解耦异步任务和回调函数,它在回调函数列表的基础上为回调函数增加了状态,并提供了多个回调函数列表,支持传播任意同步或异步回调函数的成功或失败状态;数据缓存模块用于为DOM元素和Javascript对象附加任意类型的数据;队列模块用于管理一组函数,支持函数的入队和出队操作,并确保函数按顺序执行,它基于数据缓存模块实现。

在功能模块中,事件系统提供了统一的事件绑定、响应、手动触发和移除机制,它并没有将事件直接绑定到DOM元素上,而是基于数据缓存模块来管理事件;Ajax模块允许从服务器上加载数据,而不用刷新页面,它基于异步队列模块来管理和触发回调函数;动画模块用于向网页中添加动画效果,它基于队列模块来管理和执行动画函数;属性操作模块用于对HTML属性和DOM属性进行读取、设置和移除操作;DOM遍历模块用于在DoM树中遍历父元素、子元素和兄弟元素;DOM操作模块用于插入、移除、复制和替换DOM元素;样式操作模块用于获取计算样式或设置内联样式;坐标模块用于读取或设置DOM元素的文档坐标;尺寸模块用于获取DOM元素的高度和宽度。

运行条件

运行jQuery所需的条件很简单:一台计算机、一个智能电话或一个可以运行现代浏览器的设备。jQuery对浏览器的要求也相当自由。官方网站列出了下列支持jQuery的浏览器:

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(29) 发布并加入讨论🔥
发表了资讯
02/08 21:33

jQuery 4.0.0 beta 发布

jQuery 4.0.0 beta 现已发布,进行了一些错误修复、性能改进和一些破坏性变更。 公告指出,其中很多突破性变更都是团队多年来一直想做的,但却无法在补丁或小版本中实现的。新版本删减了遗留代码,移除了一些以前已经弃用的 API,移除了一些从未记录在案的 public functions 的 internal-only 参数,并放弃了对一些过于复杂的"magic"行为的支持。 一些更新内容包括: Goodbye IE<11 不再支持 IE 10 及更早版本。按照分阶段取消支...

14
4
发表了资讯
2023/11/03 15:52

因使用过时 jQuery 版本,7.5 亿个网站存在隐私和安全风险

OpenJS 基金会公布了一项基于 IDC 调查的最终用户审计结果显示,十亿个网站中有四分之三的网站正在使用过时的软件,并且其中大多数网站都会收集个人和财务信息。超过三分之一的受访者证实,在过去 24 个月中曾经历过安全事件。 OpenJS 基金会分析了本次最终用户审计的 IDC 调查结果和其他数据点,估计全球 19 亿个网站中有近 90% 使用开源软件 jQuery,其中 7.5 亿个站点需要升级。鉴于问题的严重性,OpenJS 基金会建议在 Web ...

2
1
发表了资讯
2023/10/30 11:10

jQuery 4.0 开发进度:已完成 99%

根据 jQuery 的 GitHub 里程碑状态,其 4.0.0 版本的开发进度已完成 99%。 https://github.com/jquery/jquery/milestone/7 可以看到,目前待处理的 issue 仅剩一个,其内容是升级与 ESLint 相关的软件包,以及修复 linting 错误。已经处理完毕的 issue 共计 163 个,内容包括核心变更、构建变更、与 Ajax 相关的改动等,详情查看 https://github.com/jquery/jquery/milestone/7?closed=1。 jQuery 是一个快速、小型且功能丰富的...

78
3
发表了资讯
2023/09/01 10:41

jQuery 3.7.1 发布,修复表格变“圆角”问题

jQuery 3.7.1 已发布。 新版本修复了来自 jQuery 3.6.0 的回归错误,该错误导致在 Chrome 和 Safari 中<tr />的元素变为圆角。此外,开发者在 jQuery 3.7.0 中删除 Sizzle 时,jQuery 对象上的(主要是)内部 Sizzle 方法jQuery.find.tokenize被意外删除。在新版本中该方法已恢复。 在 3.7.0 中,开发者放弃了长期使用的选择器引擎 Sizzle —— jQuery 不再依赖于作为单独项目的 Sizzle。开发者表示他已经将 Sizzle 移动至 jQue...

7
0
发表了资讯
2023/05/12 15:37

jQuery 3.7.0 发布,提升操作性能

jQuery 3.7.0 已正式发布。更新内容包括修复错误、引入新方法,以及提升性能。 其中值得关注的一项变化是放弃了长期使用的选择器引擎 Sizzle —— jQuery 不再依赖于作为单独项目的 Sizzle。开发者表示他已经将 Sizzle 移动至 jQuery 内部,将其代码直接放到 jQuery 核心。 据称这有助于为未来 jQuery 版本中选择器的重要变化做好准备。虽然现在意义不大,但 jQuery 体积减少了几个字节。因为 Sizzle 支持比 jQuery 更旧的浏览器...

10
2
发表了资讯
2023/03/10 07:23

jQuery 3.6.4 发布

jQuery 3.6.x 系列的更新频率有点高,距离上次更新才过去两个多月又发布了新版本:3.6.4。更新内容主要还是围绕着新的选择器:has()。 开发团队表示,他们一直在研究如何解决最近在浏览器中添加的一些新选择器,尤其是:has。 jQuery 3.6.3 确定了使用原生CSS.supports来确定选择器是直接传递给querySelectorAll还是通过 jQuery 的选择器引擎的策略,就像使用 jQuery 选择器扩展、复杂的:not()时的情况一样,或其他在 jQuery 中有...

13
2
发表了资讯
2022/12/21 07:35

jQuery 3.6.3 发布,快速选择器修复

jQuery 3.6.2 刚于上周发布,该版本包含了几个变化,其中最重要的是解决了在大多数浏览器中引入的一些新选择器的问题,如 :has()。现如今,jQuery 3.6.3 也已发布;原因在于有一个问题被报告,揭示了原来的修复问题。新版本亮点更新内容如下: 正确使用CSS.supports 在jQuery 3.6.2修复了:has的问题后,开发团队开始使用CSS.supports( "selector(SELECTOR)") 来确定一个选择器如果直接传递给querySelectorAll是否有效。当CSS.s...

3
1
发表了资讯
2022/12/15 07:21

jQuery 3.6.2 发布

距上个版本更新 3.6.1 才过去 4 个多月,jQuery 3.6.2 近日发布了。团队称更新此版本的动力是 Chrome 引入了一些新的选择器。 据介绍,Chrome 最近引入了一些新的选择器,其中影响最大的是:has()。这是一个受欢迎的新增功能,并且受到 jQuery 团队的欢迎,但是规范的更改意味着:has()使用了所谓的“宽容解析 (forgiving parsing)”。本质上,即使:has()的参数无效,浏览器也不会返回任何结果,而不是抛出错误。 :has()在包含另一...

88
3
发表了资讯
2022/08/28 08:01

jQuery 3.6.1 发布,优化 jQuery.trim 性能、修复焦点相关错误

jQuery 3.6.0 发布一年多之后推出了维护更新:3.6.1。 主要变化 改进基础设施 团队表示,他们在这个版本中做了很多工作来更新一些测试和构建基础设施,包括将 CI 从 Travis CI 迁移到 GitHub Actions,在 Node 16 而不是 Node 15 上进行测试,通过 https 加载测试监听器,以及为自定义构建添加更多精度测试 (accurate testing)。 此外,他们还从仓库某些文件的注释中删除了一些旧链接。因为这些链接指向了已被泄露的 URL。虽然这...

39
3
发表了资讯
2022/07/16 07:20

jQuery UI 1.13.2 发布

jQuery UI 1.13.2 现已发布,这是 jQuery 1.13 系列的第二个补丁版本。它包括 Checkboxradio 小部件的安全修复、Datepicker 的一些本地化更新以及一些社区提交的问题的修复。内置的 jQuery UI 文件现在包含在 npm 包中,这对于一些依赖它作为真实来源的 CDN 来说很重要。 官方提醒称,“请记住 jQuery UI 处于维护状态:我们将确保该库与新的 jQuery 版本兼容,并且安全问题已得到修复,但没有计划新的重要功能工作。我们还将尝...

7
0
发表了资讯
2022/05/21 08:49

英国政府网站删除所有 jQuery 依赖后,性能显著提升

英国政府网站 GOV.UK 前端开发主管 Matt Hobbs 宣布,jQuery 作为该网站所有前端应用程序的依赖项已被删除。通过此举,对于网站的 13 个前端应用程序,其 JS 大小减少了 32 KB(或 31% 到 49%)之间。 根据 Matt 分享网站移除 jQuery 后的数据表现,可总结出如下信息: 整体减少前端处理时间,提升性能 许多关键指标(如 First CPU Idle, JS Long Tasks)的数据呈现下降趋势 对于一些极端情况下(严重不利的网络和设备条件)的数...

41
6
发表了资讯
2020/05/05 08:10

jQuery 3.5.1 发布,修复安全问题

jQuery 3.5.1 已发布,此版本修复了针对 3.5.0 的回归错误。 具体来说就是,在此前的版本中将内部数据对象改为使用Object.create( null )而非普通对象 ({})。之所以这样做是为了防止与 Object.prototype 属性上的 key 发生冲突。然而,这也意味着用户(尤其是插件)无法再使用原生的 .hasOwnProperty 方法来检查 jQuery 数据中的内容,导致破坏部分代码。目前已恢复了这个改动,但官方计划在 jQuery 4.0 中再放回去。这个改动也...

4
7
发表了资讯
2020/04/11 08:08

jQuery 3.5.0 发布

jQuery 3.5.0 发布了,此版本主要是安全修复。 jQuery 在其jQuery.htmlPrefilter方法中使用了正则表达式,以确保在传递给方法时,所有结束标记均符合 XHTML 规则。例如,此预过滤器可确保将jQuery("<div class='hot' />")这样的调用转换为 jQuery("<div class='hot'></div>")。但是最近有报道称正则表达式可能会引入跨站脚本(XSS)漏洞。所以此版本中jQuery.htmlPrefilter函数不再使用正则表达式。 如果有开发者需要这种正则需...

27
10
发表了资讯
2019/05/05 08:05

jQuery 3.4.1 发布,修复上个版本的问题

三周前,jQuery 发布了 3.4.0 版本,用户对这个版本反馈了不少问题,于是便有了这个修复问题的补丁版本 3.4.1。 1.在 IE 中触发获取或失去焦点的事件出现异常 在 jQuery 3.4.0 中,触发本地事件的事件处理程序带来了一些改变,例如focus和blur。而这些变化导致了一个回归问题,有时会导致抛出神秘的错误"saved.shift is not a function",目前已修复。 示例代码 // Error thrown in IE10-11 // after clicking #test-elemen...

10
3
发表了资讯
2019/04/22 08:26

jQuery 的“原型污染”安全漏洞

前两周发布的 jQuery 3.4.0 除了常规更新外,更重要的是修复了一个称为“原型污染(prototype pollution)”的罕见安全漏洞。 什么是原型污染?顾名思义,原型污染就是指攻击者通过某种手段修改 JavaScript 对象的 prototype。 JavaScript 对象就跟变量一样,但它不是存储一个值(var car =“Fiat”),而是可以包含基于预定义结构的多个值 (var car ={type:"Fiat", model:"500", color:"white"})。 prototype 定义了 JavaScri...

21
21
发表了资讯
2019/04/11 07:43

时隔一年,jQuery 发布 3.4.0 版本

jQuery 团队的核心开发者 Timmy Willison 今天在官网宣布了 jQuery 3.4.0,这距离上个版本 3.3.x 系列的推出已过去了一年多。 Timmy 表示这可能是 3.x 分支的最后一个小版本更新,接下来的工作重心将是 jQuery 4.0 大版本的更新。 jQuery 3.4.0 的更新内容主要是错误修复和功能改进,列举部分如下: 针对 .width 和 .height 的性能改进 支持 nonce 和 nomodule 针对 Radio 元素新增事件处理程序中的预期状态 // 示例代码 v...

55
13
发表了资讯
2018/07/27 08:07

GitHub 改版,重构页面移除了 jQuery 真的有必要吗?

GitHub 的前端团队还乘机移除了页面中的 jQuery: 值得一提的是,GitHub 前端团队并未使用其它框架来代替 jQuery,而是使用原生 JS: 用 querySelectorAll 来查询 DOM 节点; 使用 fetch 代替 ajax(在不支持的浏览器上使用 XHR); 使用代理事件来进行事件处理; 为一些尚未实现的 DOM 标准写了 polyfill; 更多的使用自定义元素(CustomElement)。 他们把其中的一些成果也在 GitHub 上开源了: Fetch polyfill: https://gith...

48
22
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
29 评论
556 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部