jQuery选择器详解:子元素过滤与应用

需积分: 11 0 下载量 103 浏览量 更新于2024-08-25 收藏 690KB PPT 举报
"子元素过滤选择器-jQuery源码解读" jQuery选择器是其强大功能的核心,它提供了一种高效的方式来定位DOM中的特定元素。在jQuery中,选择器分为多个类别,包括基本选择器、层次选择器、过滤选择器、表单选择器等,这些选择器使得操作DOM变得简单直观。 ### 基本选择器 基本选择器是最基础的元素定位方式,包括: 1. `$("#myElement")` - 通过ID选择元素,ID必须在文档中唯一。 2. `$("div")` - 选择所有`<div>`标签元素。 3. `$(".myClass")` - 选择所有具有指定CSS类的元素。 4. `$("*")` - 选择所有元素,可以与其他选择器组合使用。 ### 层次选择器 层次选择器用于根据元素之间的关系进行选择: 1. `$("form input")` - 选取`<form>`元素内的所有`<input>`元素。 2. `$("#main > *")` - 选取ID为`main`的元素的所有直接子元素。 3. `$("label + input")` - 选取所有紧跟在`<label>`元素后面的`<input>`元素。 4. `$("#prev ~ div")` - 选取ID为`prev`元素的所有同级`<div>`元素。 ### 过滤选择器 过滤选择器进一步细化了元素选择,包括基本过滤、内容过滤和属性过滤: 1. **基本过滤**: - `$("tr:first")` - 选取所有`<tr>`元素的第一个。 - `$("tr:last")` - 选取所有`<tr>`元素的最后一个。 - `$("tr:even")` - 选取所有偶数索引的`<tr>`元素(从0开始)。 - `$("tr:odd")` - 选取所有奇数索引的`<tr>`元素。 - `$("td:eq(2)")` - 选取所有`<td>`元素中索引为2的那个。 - `$("td:gt(4)")` - 选取所有索引大于4的`<td>`元素。 - `$("td:lt(4)")` - 选取所有索引小于4的`<td>`元素。 2. **内容过滤**: - `$("div:contains('John')")` - 选取所有包含文本"John"的`<div>`元素。 - `$("td:empty")` - 选取所有空的`<td>`元素(不包含文本节点)。 - `$("div:has(p)")` - 选取所有包含`<p>`标签的`<div>`元素。 - `$("div:hidden")` - 选取所有隐藏的`<div>`元素。 - `$("div:visible")` - 选取所有可见的`<div>`元素。 3. **属性过滤**: - `$("div[id]")` - 选取所有有`id`属性的`<div>`元素。 - `$("input[name='name']")` - 选取所有`name`属性为`name`的`<input>`元素。 - `$("a[href^='http://']")` - 选取所有`href`属性以`http://`开头的`<a>`元素。 ### 表单选择器 表单选择器专门用于处理HTML表单元素: - `:$(":text")` - 选取所有文本输入字段。 - `:$(":password")` - 选取所有密码输入字段。 - `:$(":radio")` - 选取所有单选按钮。 - `:$(":checkbox")` - 选取所有复选框。 - 等等... 理解并熟练掌握这些jQuery选择器是提升前端开发效率的关键,它们可以帮助开发者快速定位DOM结构中的特定元素,进行样式调整、事件绑定或数据操作。在实际应用中,还可以结合使用这些选择器来实现复杂的查询需求。同时,由于jQuery的源码是开源的,深入研究其内部实现也有助于提升对JavaScript和DOM操作的理解。