jquery 筛选器

jQuery 筛选器基础
jQuery 筛选器用于从 DOM 中精确选择元素,支持链式操作。常用筛选器分为以下几类:

基本筛选器
:first:匹配第一个元素,如$("p:first")。:last:匹配最后一个元素,如$("div:last")。:even/:odd:选择偶数或奇数索引元素(索引从 0 开始)。:eq(index):选择指定索引的元素,如$("li:eq(2)")。:gt(index)/:lt(index):选择大于或小于指定索引的元素。
内容筛选器
:contains(text):选择包含指定文本的元素,如$("p:contains('Hello')")。:empty:选择无子元素或文本的空元素。:has(selector):选择包含特定子元素的元素,如$("div:has(span)")。
属性筛选器
[attribute]:选择带有指定属性的元素,如$("[href]")。[attribute=value]:选择属性值完全匹配的元素,如$("[type='text']")。[attribute^=value]:选择属性值以指定字符串开头的元素。[attribute$=value]:选择属性值以指定字符串结尾的元素。
表单筛选器
:input:选择所有表单元素(input、select、textarea 等)。:checked:选择被选中的复选框或单选按钮。:disabled/:enabled:选择禁用或启用的表单元素。
示例代码
// 选择第一个 div 并隐藏
$("div:first").hide();
// 选择包含 "Submit" 文本的按钮
$("button:contains('Submit')").css("color", "red");
// 选择所有带有 data-id 属性的元素
$("[data-id]").addClass("highlight");
// 选择被选中的复选框并获取值
$("input:checked").each(function() {
console.log($(this).val());
});
链式筛选
通过组合筛选器实现更精确的选择:
// 选择表格中偶数行且包含 "Active" 文本的单元格
$("tr:even td:contains('Active')").addClass("active-cell");
性能优化建议
- 优先使用 ID 或类选择器(如
$("#id"))而非通用筛选器。 - 缓存重复使用的选择器结果,如
var $elements = $(".class");。 - 避免过度使用
:contains,可能影响性能。
通过灵活组合筛选器,可以高效操作 DOM 元素。






