
? Jquery 2025 最新 API 文档全解析:选择器 + 事件处理实战教程
? 一、Jquery 4.0 核心更新与性能优化
? 二、选择器深度解析与实战技巧
- ID 选择器:
$("#id")
是最快的选择器,因为它直接调用浏览器的原生方法getElementById()
。 - 类选择器:
$(".class")
在现代浏览器中性能不错,但在 IE 5-8 中会比较慢,因为这些浏览器没有原生的getElementByClassName()
方法。 - 标签选择器:
$("element")
直接使用原生的getElementsByTagName()
,性能也很好。
- 后代选择器:
$("ancestor descendant")
选择祖先元素下的所有后代元素。 - 子选择器:
$("parent > child")
只选择直接子元素。 - 相邻兄弟选择器:
$("prev + next")
选择紧接在prev
元素后面的next
元素。 - 一般兄弟选择器:
$("prev ~ siblings")
选择prev
元素之后的所有兄弟元素。
- 首元素选择器:
$("element:first")
选择第一个元素。 - 末元素选择器:
$("element:last")
选择最后一个元素。 - 奇偶元素选择器:
$("element:even")
和$("element:odd")
分别选择索引为偶数和奇数的元素。 - 属性选择器:
$("element[attr]")
选择带有指定属性的元素,$("element[attr='value']")
选择属性值等于指定值的元素。
- 输入元素选择器:
$(":input")
选择所有输入元素。 - 文本框选择器:
$(":text")
选择所有文本框。 - 复选框选择器:
$(":checkbox")
选择所有复选框。
// 选择所有必填字段
$("input[required]").each(function() {
$(this).on("blur", function() {
if ($(this).val() === "") {
$(this).addClass("error");
} else {
$(this).removeClass("error");
}
});
});
? 三、事件处理机制与最佳实践
- on () 方法:
$(selector).on("event", handler)
是绑定事件的首选方法,它支持动态内容的事件绑定。 - off () 方法:
$(selector).off("event", handler)
用于移除事件处理程序。 - trigger () 方法:
$(selector).trigger("event")
触发指定的事件。
事件委托是处理动态内容事件的有效方法,它能减少事件监听器的数量,提高性能。
// 委托处理动态添加的列表项点击事件
$("ul").on("click", "li", function() {
$(this).css("background-color", "yellow");
});
Jquery 4.0 调整了
focusin
和 focusout
事件的处理顺序,以符合最新的 W3C 规范。新的顺序是:blur -> focusout -> focus -> focusin
。Jquery 封装了事件对象,提供了一些有用的属性和方法:
event.preventDefault()
:阻止事件的默认行为。event.stopPropagation()
:阻止事件冒泡。event.target
:获取触发事件的元素。
// 动态添加按钮并绑定点击事件
$("button").on("click", function() {
var newListItem = $("New List Item ");
$("ul").append(newListItem);
});
// 事件委托处理动态列表项的点击事件
$("ul").on("click", "li", function() {
$(this).css("background-color", "green");
});
? 四、性能优化与最佳实践
- 优先使用 ID 选择器和标签选择器,避免使用复杂的选择器。
- 缓存经常使用的 jQuery 对象。
// 缓存 jQuery 对象
var $win = $(window);
$win.on("scroll", function() {
// 处理滚动事件
});
- 合并多次 DOM 操作,一次性更新。
// 优化前
$.each(arr, function(i) {
$("ul").append("" + arr[i] + "");
});
// 优化后
var html = [];
$.each(arr, function(i) {
html.push("" + arr[i] + "");
});
$("ul").append(html.join(""));
- 使用事件委托处理大量动态元素的事件,减少事件监听器的数量。
- 通用选择器
*
会匹配所有元素,性能较差,尽量避免使用。
- 在可能的情况下,使用原生 JavaScript 方法来提升性能。
// 优化前
$(this).attr("id");
// 优化后
this.id;
? 五、总结与资源推荐
- 官方文档:Jquery 官方文档
- CSDN 博客:Jquery 教程
- 实战案例:Jquery 实战案例