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 开发的演变和技术栈的变化。