jQuery 是一个快速、小巧且功能丰富的 JavaScript 库,简化了 HTML 文档遍历和操作、事件处理、动画和 Ajax 交互。尽管现代前端开发中,很多框架和库(如 React、Vue、Angular)已经取代了 jQuery,但它仍然在很多旧有项目中使用。以下是 jQuery 的详细知识点总结,包括基本用法、选择器、事件处理、动画、Ajax 请求和插件等方面。
1. 基础知识
1.1 引入 jQuery
要使用 jQuery,你需要在 HTML 文件中引入 jQuery 库。可以通过 CDN 或下载文件并本地引入。
通过 CDN 引入
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
通过本地文件引入
<script src="path/to/jquery.min.js"></script>
1.2 jQuery 语法
jQuery 的基本语法是 $(selector).action(),其中 selector 是用于查找元素的选择器,action 是对选中的元素执行的操作。
$(document).ready(function() {
$("p").text("Hello, jQuery!");
});
2. 选择器
jQuery 提供了多种选择器,用于选中 DOM 元素并操作。
2.1 基本选择器
$("#id"):根据 ID 选择元素$(".class"):根据类名选择元素$("element"):根据标签名选择元素
$("#myId").css("color", "red");
$(".myClass").hide();
$("p").show();
2.2 组合选择器
$("div p"):选择 div 元素中的所有 p 元素$("div, p"):选择所有 div 和 p 元素
$("div p").addClass("highlight");
$("div, p").css("border", "1px solid black");
2.3 属性选择器
$("[attribute='value']"):选择具有指定属性值的元素$("[type='text']"):选择所有type为text的输入框
$("[href='https://example.com']").addClass("external-link");
3. DOM 操作
3.1 元素操作
.html(content):设置或获取 HTML 内容.text(content):设置或获取文本内容.attr(attribute, value):设置或获取属性值.remove():删除元素.append(content):在元素内部末尾插入内容.prepend(content):在元素内部开头插入内容
$("#content").html("<p>New content</p>");
$("#content").text("New text");
$("#content").attr("data-id", "12345");
$("#content").remove();
$("#list").append("<li>New item</li>");
$("#list").prepend("<li>First item</li>");
3.2 类操作
.addClass(class):添加类.removeClass(class):移除类.toggleClass(class):切换类.hasClass(class):检查是否具有指定类
$("#myElement").addClass("active");
$("#myElement").removeClass("inactive");
$("#myElement").toggleClass("highlight");
if ($("#myElement").hasClass("highlight")) {
console.log("Element is highlighted");
}
3.3 样式操作
.css(property, value):设置 CSS 样式.css(properties):批量设置 CSS 样式.show():显示元素.hide():隐藏元素
$("#myElement").css("color", "blue");
$("#myElement").css({ "background-color": "yellow", "font-size": "16px" });
$("#myElement").show();
$("#myElement").hide();
4. 事件处理
4.1 绑定事件
.on(event, handler):绑定事件.off(event):解绑事件
$("#myButton").on("click", function() {
alert("Button clicked!");
});
$("#myButton").off("click");
4.2 事件对象
事件处理函数的第一个参数是事件对象 event,包含事件的详细信息。
$("#myButton").on("click", function(event) {
console.log("Event type: " + event.type);
});
4.3 常用事件
.click():点击事件.dblclick():双击事件.mouseover():鼠标悬停事件.mouseout():鼠标离开事件.keydown():键盘按下事件.keyup():键盘释放事件.submit():表单提交事件
$("#myButton").click(function() {
alert("Button clicked!");
});
$("#myForm").submit(function(event) {
event.preventDefault(); // 阻止默认提交行为
alert("Form submitted!");
});
5. 动画效果
5.1 显示和隐藏
.show(speed, easing, callback):显示元素.hide(speed, easing, callback):隐藏元素.toggle(speed, easing, callback):切换显示和隐藏状态
$("#myElement").show(400); // 400ms 过渡
$("#myElement").hide(400);
$("#myElement").toggle(400);
5.2 自定义动画
.animate(properties, duration, easing, callback):自定义动画
$("#myElement").animate({
opacity: 0.5,
left: "+=50px"
}, 1000, "swing", function() {
alert("Animation complete!");
});
6. Ajax 请求
6.1 简单请求
.get(url, data, callback):发送 GET 请求.post(url, data, callback):发送 POST 请求
$.get("https://api.example.com/data", function(response) {
console.log(response);
});
$.post("https://api.example.com/submit", { name: "John" }, function(response) {
console.log(response);
});
6.2 $.ajax() 方法
$.ajax() 方法提供了更大的灵活性和配置选项。
$.ajax({
url: "https://api.example.com/data",
type: "GET",
dataType: "json",
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error("Error: " + error);
}
});
7. 表单操作
7.1 获取和设置表单值
.val():获取或设置表单元素的值
let inputValue = $("#myInput").val();
$("#myInput").val("New value");
7.2 表单序列化
.serialize():序列化表单数据为 URL 编码的字符串
let formData = $("#myForm").serialize();
console.log(formData);
8. 插件系统
jQuery 允许创建和使用插件来扩展其功能。插件的创建通常涉及以下步骤:
- 定义插件函数:在 jQuery 对象上扩展新方法
- 使用插件:在选择器上调用插件方法
示例插件
(function($) {
$.fn.highlight = function(color) {
this.css("background-color", color);
return this; // 允许链式调用
};
})(jQuery);
// 使用插件
$("p").highlight("yellow");
9. 文档准备
确保在 DOM 完全加载后执行脚本,可以使用 $(document).ready() 或简写 $(function() { ... });。
$(document).ready(function() {
// DOM 准备完毕后执行的代码
});
简写
$(function() {
// DOM 准备完毕后执行的代码
});
10. 总结
jQuery 提供了许多用于简化 JavaScript 编程的功能和方法,包括 DOM 操作、事件处理、动画效果、Ajax 请求和插件扩展。尽管现代前端开发中,jQuery 的使用逐渐减少,但它仍然是学习和维护老旧项目的重要工具。了解 jQuery 的基本用法和高级特性有助于更好地理解 Web 开发的演变和技术栈的变化。