jquery 筛选器
jQuery 筛选器基础
jQuery 提供多种筛选器用于精确选择 DOM 元素,主要包括基本筛选器、内容筛选器、可见性筛选器等。
基本筛选器
:first:选择第一个匹配的元素,如$("div:first")。:last:选择最后一个匹配的元素。:even/:odd:选择偶数或奇数索引的元素(索引从 0 开始)。:eq(n):选择索引为n的元素,如$("li:eq(2)")。:gt(n)/:lt(n):选择索引大于或小于n的元素。
内容筛选器
:contains(text):选择包含指定文本的元素,如$("p:contains('Hello')")。:empty:选择没有子元素或文本的空元素。:has(selector):选择包含特定子元素的元素,如$("div:has(p)")。
属性筛选器
通过元素属性进一步筛选:
[attribute]:选择具有指定属性的元素,如$("a[href]")。[attribute=value]:选择属性值完全匹配的元素,如$("input[type='text']")。[attribute^=value]:选择属性值以value开头的元素。[attribute$=value]:选择属性值以value结尾的元素。
子元素筛选器
:nth-child(n):选择父元素下第n个子元素(从 1 开始计数)。:first-child/:last-child:选择父元素下的第一个或最后一个子元素。
表单筛选器
针对表单元素的专用筛选器:
:input:选择所有input、textarea、select和button元素。:checked:选择被选中的复选框或单选按钮。:selected:选择被选中的option元素。
链式筛选方法
jQuery 支持链式调用筛选方法:
.filter(selector):从当前结果集中筛选符合条件的元素。.not(selector):排除不符合条件的元素。.find(selector):在当前元素的后代中查找匹配元素。
示例代码
// 筛选表格中偶数行并隐藏
$("tr:even").hide();
// 筛选包含特定类名的 div
$("div").filter(".highlight").css("color", "red");
// 筛选表单中所有必填字段
$("input[required]").addClass("required-field");
性能优化建议
- 优先使用 ID 或类名选择器(如
$("#id")),效率高于复杂筛选器。 - 避免过度使用
:contains或:has,可能引发性能问题。 - 缓存筛选结果以减少重复查询,如
var $elements = $("div.special")。
通过组合筛选器和链式调用,可以高效操作 DOM 元素。







