jQuery 简介
在动手装环境之前,我们先认识一下 jQuery 到底是什么、为什么曾经统治 Web、为什么今天仍然值得学。理解了背景,学习的时候会更有的放矢。
jQuery 是什么?
jQuery 是美国工程师 John Resig 在 2006 年 1 月于 BarCamp NYC 上首次发布的 JavaScript 库。它的目标是:把当时痛苦不堪的 DOM 操作、事件绑定、AJAX 请求、浏览器兼容问题全部封装成一套极简 API,让前端开发者能用最少的代码完成最多的事——口号正是 "Write Less, Do More"(写得更少,做得更多)。
诞生背景:浏览器大战的"黑暗年代"
要理解 jQuery 为什么火,得回到 2005-2006 年的前端世界。当时 IE6 占有率超过 80%,Firefox 刚崛起,Safari、Opera 各占一席,每个浏览器对同一套 JavaScript API 的实现都不一样:
- 选中元素:
getElementById在 IE 老版本里只对部分元素生效,document.all是 IE 私有写法。 - 绑定事件:标准浏览器用
addEventListener,IE 用attachEvent,事件对象传参方式还不一样。 - 取/设样式:直接读
style拿不到外部 CSS 的值,需要currentStyle(IE)或getComputedStyle(标准)。 - 发请求:
XMLHttpRequest在 IE 上是 ActiveX 对象,初始化方式完全不同。
那个年代写一段"点按钮弹窗"都要写一长串 if/else 判断浏览器,看下面这段对比就懂 jQuery 多省事:
// 2006 年用原生 JS 选中元素 + 绑事件,要写一堆浏览器判断
function addEvent(el, type, fn) {
if (window.addEventListener) {
el.addEventListener(type, fn, false);
} else if (window.attachEvent) {
el.attachEvent("on" + type, fn);
} else {
el["on" + type] = fn;
}
}
var btn = document.getElementById ? document.getElementById("btn")
: document.all.btn;
addEvent(btn, "click", function () {
alert("被点了");
});
// 而 jQuery 一行搞定
$("#btn").on("click", function () {
alert("被点了");
});jQuery 把上面这些差异全部抹平,开发者只管调用 on、click,背后兼容性它替你处理。这就是它当年迅速统治 Web 的根本原因。
核心设计理念
jQuery 的 API 设计在当年极具颠覆性,影响了之后无数库。它的几个标志性理念:
- CSS 选择器选元素:直接用
$("selector"),背后是 Resig 自己写的 Sizzle 引擎,速度比当时的querySelectorAll(还没标准化)快得多。 - 链式调用:每个方法都返回 jQuery 对象本身,所以能连续
.text().css().addClass()一路写下去,可读性极强。 - 取/赋二合一:
.text()不带参数是取值,带参数是赋值——同一方法名干两件事。 - 隐式迭代:选中多个元素后调一次方法,会自动对所有元素生效,不用写 for 循环。
- 插件生态:通过
$.fn扩展,任何人都能给 jQuery 加方法,鼎盛时期插件数突破上万个。
第一个 jQuery 页面
说再多不如看代码。下面是一个完整的可运行页面,把它保存为 hello.html 双击打开就能跑:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>第一个 jQuery 页面</title>
<!-- 引入 jQuery -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
</head>
<body>
<h1 id="title">点下面的按钮</h1>
<button id="btn">点我</button>
<script>
// 等待 DOM 加载完成
$(document).ready(function () {
$("#btn").on("click", function () {
$("#title").text("Hello, jQuery!").css("color", "red");
});
});
</script>
</body>
</html>几个关键点:script 标签从官方 CDN 引入 jQuery;$(document).ready 等 DOM 加载完再执行(避免选不到元素);$("#btn") 用 CSS 选择器选中按钮;.text().css() 是链式调用——jQuery 的全部精髓都在这十来行代码里。
jQuery 都用在哪?
虽然在新项目里 jQuery 已经被 React/Vue 替代,但它远没"死",下面这些场景它仍是主力:
- WordPress 主题与插件:全球近 43% 的网站用 WordPress,它默认带 jQuery,所有主题都依赖它。
- 企业内部系统:ERP、CRM、OA、CMS 等大量传统企业系统用 jQuery + Bootstrap 构建,仍在维护。
- 政府/教育/医疗官网:国内大量政府、学校、医院官网基于 jQuery,改版周期长。
- 第三方组件库:Bootstrap 4 及以前、jQuery UI、AdminLTE 模板、很多老富文本编辑器(TinyMCE、CKEditor 4)。
- 简单交互页面:做点表单校验、轮播、Tab 切换,引 jQuery 比引一个 React 还快。
jQuery vs 现代框架
- vs 原生 JS:现代浏览器已经把
querySelector、fetch、classList全部标准化,简单页面用原生 JS 完全够用;但维护老代码或快速做点交互,jQuery 仍然更省事。 - vs React/Vue:现代框架是声明式 + 组件化 + 虚拟 DOM,适合大型 SPA;jQuery 是命令式 + 直接操作 DOM,适合简单页面或渐进增强。两者不是替代关系,而是不同场景的工具。
- vs Alpine.js / htmx:这两个是"现代版 jQuery"——同样轻量、同样命令式,但用了现代语法。新项目若只是要少量交互,可以优先考虑。
该不该学 jQuery?
结论是:新项目别用 jQuery,但一定要会读 jQuery。理由很简单:互联网上仍有过半网站用的是 jQuery,接手老项目、改 WordPress 主题、维护企业系统时,你不可能要求重写。学 jQuery 不需要花很久,会 CSS 选择器 + 五六个核心方法就能读懂 80% 的代码。本系列会把"该学的"和"过时的"都讲清楚,让你既能维护老代码,也不被老写法带偏。
← 返回 jQuery 教程目录
下一篇 引入 jQuery →