1. 什么是 jQuery? - 核心概念介绍
  2. 为什么要使用 jQuery? - 优势详解
  3. 第一个 jQuery 程序:Hello World! - 快速上手
  4. jQuery 核心语法:选择器与操作 - 核心功能详解
  5. jQuery 事件处理 - 让网页“动”起来
  6. jQuery 动画效果 - 丰富的视觉体验
  7. jQuery AJAX - 无刷新数据交互
  8. jQuery 插件 - 扩展功能
  9. 最佳实践与注意事项
  10. 学习资源推荐

什么是 jQuery?

jQuery 是一个快速、小型、功能丰富的 JavaScript 库,它的设计宗旨是“写得少,做得多”(Write Less, Do More)

jQuery 封装了大量复杂的 JavaScript 代码,让你可以用更简洁、更直观的语法来操作 HTML 文档、处理事件、创建动画以及进行网络请求。

  • 核心思想:通过选择元素,然后对选中的元素进行操作。
  • 口号:jQuery The Write Less, Do More, JavaScript Library.

为什么要使用 jQuery?(优势)

在原生 JavaScript(Vanilla JS)日益强大的今天,学习 jQuery 依然有价值,尤其是在维护旧项目和理解 Web 开发的历史演进中。

  1. 简洁的语法:用 符号和链式调用,大大简化了 DOM 操作。

    • 原生 JSdocument.getElementById('myId').style.color = 'red';
    • jQuery$('#myId').css('color', 'red');
  2. 跨浏览器兼容性:jQuery 自动处理了不同浏览器(尤其是 IE6/7/8)之间的差异,开发者无需编写大量兼容性代码。

  3. 强大的选择器:提供了比 CSS 更丰富的选择器,轻松定位页面上的任意元素。

  4. 链式操作:对同一个元素执行多个操作,可以像链条一样连接起来,代码更紧凑。

    • $('#myDiv').hide().addClass('hidden').fadeIn(1000);
  5. 丰富的动画和效果:内置了 show(), hide(), fadeIn(), slideUp() 等简单易用的动画方法。

  6. 简化的 AJAX$.ajax() 方法让异步请求变得异常简单。


第一个 jQuery 程序:Hello World!

这是学习任何新技术的第一步。

步骤 1:引入 jQuery 库

你需要先在 HTML 页面中引入 jQuery 库,最简单的方式是通过 CDN(内容分发网络)。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">jQuery Hello World</title>
    <!-- 引入 jQuery 库 -->
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
</head>
<body>
    <h1>你好,世界!</h1>
    <button id="myButton">点击我</button>
    <!-- 引入我们自己的 JavaScript 文件 -->
    <!-- 注意:放在 jQuery 库之后 -->
    <script src="app.js"></script>
</body>
</html>

步骤 2:编写 jQuery 代码

创建一个 app.js 文件,编写你的第一行 jQuery 代码。

// 等待整个 HTML 文档加载完毕后再执行 jQuery 代码
// 这是最重要的一个习惯,可以避免找不到元素
$(document).ready(function() {
    // 当 id 为 "myButton" 的按钮被点击时
    $('#myButton').on('click', function() {
        // 找到 h1 标签,并修改其文本内容
        $('h1').text('你好,jQuery 世界!');
    });
});

代码解释

  • $(document).ready(function() { ... });:这是一个核心函数,确保你的代码在页面所有元素(DOM)都加载完成后才执行,可以简写为 $(function() { ... });
  • $('#myButton'):这是选择器, 是 jQuery 的别名,#myButton 表示选择 idmyButton 的元素。
  • .on('click', function() { ... }):这是事件绑定方法,表示监听元素的 click 事件,当事件发生时,执行后面的匿名函数。
  • $('h1'):选择所有的 <h1>
  • .text('你好,jQuery 世界!'):这是一个方法,用于修改选中元素的文本内容。

jQuery 核心语法:选择器与操作

这是 jQuery 的基石。

A. 选择器

jQuery 的选择器几乎和 CSS 选择器一模一样。

选择器 示例 描述
基本 选择所有元素
$("#id") 选择 id 为 "id" 的元素
$(".class") 选择所有 class 为 "class" 的元素
$("element") 选择所有 <element> 元素
$("this") 选择当前 HTML 元素
层级 $("parent > child") 选择指定父元素下的直接子元素
$("ancestor descendant") 选择指定祖先元素下的所有后代元素
$("prev + next") 选择紧接在 prev 元素后面的 next 元素
$("prev ~ siblings") 选择 prev 元素之后的所有兄弟元素
过滤 first 选择第一个元素
last 选择最后一个元素
even 选择索引为偶数的元素 (从 0 开始)
odd 选择索引为奇数的元素 (从 0 开始)
eq(index) 选择指定索引的元素
gt(index) 选择索引大于指定值的元素
lt(index) 选择索引小于指定值的元素
not(selector) 选择不匹配选择器的元素
hidden 选择所有隐藏的元素
visible 选择所有可见的元素

B. DOM 操作

选择到元素后,就可以对它们进行各种操作。

  1. 获取和设置内容

    • .text() / .text('new text'):获取/设置元素的文本内容(会忽略 HTML 标签)。
    • .html() / .html('<strong>new html</strong>'):获取/设置元素的 HTML 内容。
    • .val() / .val('new value'):获取/设置表单元素的值。
  2. 获取和设置属性

    • .attr('href'):获取元素的 href 属性。
    • .attr('href', 'https://new-url.com'):设置元素的 href 属性。
    • .removeAttr('href'):移除元素的 href 属性。
  3. CSS 操作

    • .css('color'):获取元素的 color 样式。
    • .css('color', 'blue'):设置元素的 color 样式。
    • .addClass('my-class'):添加一个或多个类名。
    • .removeClass('my-class'):移除一个或多个类名。
    • .toggleClass('my-class'):如果存在则移除,不存在则添加。
  4. 元素遍历和修改

    • .each(function(index, element) { ... }):遍历一个 jQuery 对象,为每个元素执行一个函数。
    • .append(content):在被选元素的结尾插入内容。
    • .prepend(content):在被选元素的开头插入内容。
    • .after(content):在被选元素之后插入内容。
    • .before(content):在被选元素之前插入内容。
    • .remove():删除被选元素(及其子元素)。
    • .empty():删除被选元素的子元素。

jQuery 事件处理

jQuery 提供了一系列简单的事件方法。

方法 描述
.click(function() { ... }) 点击事件
.dblclick(function() { ... }) 双击事件
.mouseenter(function() { ... }) 鼠标进入事件
.mouseleave(function() { ... }) 鼠标离开事件
.hover(function() { ... }) 鼠标悬停事件(进入和离开的组合)
.focus(function() { ... }) 获得焦点事件
.blur(function() { ... }) 失去焦点事件
.on('event', function() { ... }) 通用事件绑定方法,可以绑定任意事件,是最推荐的方式

示例:

// 使用 .on() 绑定多个事件
$('#myBox').on({
    'click': function() {
        $(this).css('background-color', 'lightblue');
    },
    'mouseenter': function() {
        $(this).text('鼠标进来了');
    },
    'mouseleave': function() {
        $(this).text('鼠标离开了');
    }
});

jQuery 动画效果

让页面动起来,提升用户体验。

方法 描述
.show() 显示元素
.hide() 隐藏元素
.toggle() 切换元素的显示与隐藏状态
.fadeIn() 淡入显示元素
.fadeOut() 淡出隐藏元素
.fadeToggle() 切换元素的淡入淡出状态
.slideDown() 向下滑动显示元素
.slideUp() 向上滑动隐藏元素
.slideToggle() 切换元素的滑动显示与隐藏状态
.animate({params}, speed, callback) 自定义动画

示例:

// 点击按钮时,执行一个自定义动画
$('#animateBtn').click(function() {
    $('#myBox').animate({
        width: '500px',    // 宽度变为 500px
        height: '300px',   // 高度变为 300px
        opacity: 0.5       // 透明度变为 0.5
    }, 1000, function() {
        // 动画完成后执行的回调函数
        alert('动画完成!');
    });
});

jQuery AJAX

jQuery 的 AJAX 功能让前后端数据交互变得非常简单。

最核心的方法是 $.ajax(),但更常用的是它的简化版本。

$.get()$.post()

// $.get() 用于 GET 请求
$('#getDataBtn').click(function() {
    $.get('https://jsonplaceholder.typicode.com/posts/1', function(data) {
        // data 是服务器返回的 JSON 数据
        $('#result').html('<h3>' + data.title + '</h3><p>' + data.body + '</p>');
    });
});
// $.post() 用于 POST 请求
$('#postDataBtn').click(function() {
    $.post('https://jsonplaceholder.typicode.com/posts', {
        title: 'foo',
        body: 'bar',
        userId: 1
    }, function(data) {
        $('#result').text('数据已发送,服务器返回 ID: ' + data.id);
    });
});

$.ajax() - 强大的核心方法

$.ajax({
    url: 'https://jsonplaceholder.typicode.com/posts/1',
    method: 'GET', // 或 'POST'
    dataType: 'json', // 预期服务器返回的数据类型
    success: function(data) {
        console.log('请求成功:', data);
    },
    error: function(xhr, status, error) {
        console.error('请求失败:', error);
    },
    complete: function(xhr, status) {
        console.log('请求完成 (无论成功或失败)');
    }
});

jQuery 插件

jQuery 的生态系统非常强大,有海量的第三方插件,可以轻松实现复杂功能,如轮播图、日历、表单验证等。

使用插件的步骤:

  1. 引入插件文件:在 jQuery 库之后引入插件的 JS 和 CSS 文件。
  2. 调用插件方法:用 jQuery 选择器选中元素,然后调用插件提供的方法。

示例:一个简单的模态框插件

<!-- 引入 jQuery -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<!-- 引入一个假设的模态框插件 -->
<script src="path/to/simple-modal.js"></script>
<button id="openModal">打开模态框</button>
<div id="myModal" style="display:none;">
    <h2>这是一个模态框</h2>
    <p>内容...</p>
    <button id="closeModal">关闭</button>
</div>
<script>
    // 调用插件方法
    $('#myModal').simpleModal();
    $('#openModal').click(function() {
        $('#myModal').open();
    });
    $('#closeModal').click(function() {
        $('#myModal').close();
    });
</script>

最佳实践与注意事项

  1. 始终使用 $(document).ready():确保 DOM 加载完成后再执行脚本。
  2. 使用语义化的选择器:尽量使用 idclass,避免使用通用的标签名选择器(如 $('div')),以提高性能。
  3. 缓存 jQuery 对象:如果多次操作同一个元素,先把它存到一个变量里,避免重复查询 DOM。
    • 不推荐$('#myDiv').css('color', 'red'); $('#myDiv').addClass('active');
    • 推荐var $myDiv = $('#myDiv'); $myDiv.css('color', 'red'); $myDiv.addClass('active');
  4. 使用事件委托:对于动态添加的元素,使用 .on() 的事件委托形式,可以避免重复绑定事件。
    • 场景:一个列表,里面的项目是动态加载的。
    • 不推荐$('.item').click(...); (动态添加的 .item 不会响应)
    • 推荐$('#list-container').on('click', '.item', function() { ... }); (在已存在的父容器上监听)
  5. 版本选择:对于新项目,尽量使用最新稳定版,对于需要兼容旧浏览器(如 IE)的项目,选择支持 IE 的版本(如 1.x, 2.x)。
  6. 不要滥用 jQuery:对于简单的操作,原生 JavaScript 可能更快、更轻量。

学习资源推荐

  1. 官方文档https://api.jquery.com/ - 最权威、最全面的参考资料。
  2. jQuery 教程 - W3Schoolshttps://www.w3schools.com/jquery/ - 简单易懂,适合初学者。
  3. jQuery 教程 - 菜鸟教程https://www.runoob.com/jquery/jquery-tutorial.html - 提供大量实例和在线演示。
  4. jQuery UIhttps://jqueryui.com/ - 官方提供的 UI 组件库,包含丰富的交互组件和主题。
  5. CodePen / JSFiddle:在这些平台上可以轻松创建和分享 jQuery 代码片段,是学习和实验的好地方。

这份教程涵盖了 jQuery 的核心知识,通过学习和实践这些内容,你将能够熟练地使用 jQuery 来构建动态、交互性强的网页,祝你学习愉快!