一、简介
jQuery的选择器语法主要是基于CSS语法(早期版本还支持一部分XPath语法,因为效率等原因后期去除,但可以通过插件来使用),另外W3C积极推进js原生的Selector API 规定了querySelector和querySelectorAll方法,目前大部分主流浏览器提供支持(IE需8以上),jQuery内部也有应用querySelectorAll
相关知识参考:
http://www.w3.org/TR/css3-selectors/
http://www.w3.org/TR/xpath20/
http://www.w3.org/TR/selectors-api/
二、分类
jQuery选择器分为基本选择器、层次选择器、过滤选择器和表单选择器。
1.基本选择器:jQuery中最常用的选择器,也是最简单的选择器,它通过id、class、和标签名来查找DOM元素。在网页中,每个id名称只能使用一次,class允许重复使用。
jQuery的基本选择器
|
选择器
|
描述
|
返回
|
示例
|
#id
|
根据给定的id匹配一个元素
|
单个元素
|
$("#test")选取id为test的元素
|
.class
|
根据给定的类名匹配元素
|
集合元素
|
$(".test")选取所有class为test的元素
|
element
|
根据给定的元素名匹配元素
|
集合元素
|
$("p")选取所有的<p>元素
|
*
|
匹配所有元素
|
集合元素
|
$("*")选取所有的元素
|
selector1,selector2,...,selectorN
|
将每一个选择器匹配到的元素合并后一起返回
|
集合元素
|
$("div,span,p.myClass")选取所有<div>,<span>和拥有class为myClass的<p>标签的一组元素
|
2.层次选择器:如果想通过DOM元素之间的层次关系来获取特定元素,例如后代元素、子元素、相邻元素和兄弟元素等,那么层次选择器是一个非常好的选择。
jQuery的层次选择器
|
选择器
|
描述
|
返回
|
示例
|
$("ancestor descendant")
|
选取ancestor元素里的所有descendant(后代)元素
|
集合元素
|
$("div span")选取<div>里的所有<span>元素
|
$("parent>child")
|
选取parent元素下的child(子)元素,与$("ancestor descendant")有区别,$("ancestor descendant")选择的是后代元素
|
集合元素
|
$("div>span")选取<div>元素下元素名是<span>的子元素
|
$("prev+next")
|
选取紧接在prev元素后的next元素
|
集合元素
|
$(".one+div")选取class为one的下一个<div>元素
|
$("prev~siblings")
|
选取prev元素之后的所有siblings元素
|
集合元素
|
$("#two~div")选取id为two的元素后面的所有<div>兄弟元素
|
3.过滤选择器:主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类选择器语法相同,即选择器都以一个冒号(:)开头。按照不同的过滤规则,过滤选择器可以分为基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤和表单对象属性过滤选择器。
1) 基本过滤
jQuery的基本过滤选择器
|
选择器
|
描述
|
返回
|
示例
|
:first
|
选取第1个元素
|
单个元素
|
$("div:first")选取所有<div>元素中第1个<div>元素
|
:last
|
选取最后一个元素
|
单个元素
|
$("div:last")选取所有<div>元素中最后一个<div>元素
|
:not(selector)
|
去除所有与给定选择器匹配的元素
|
集合元素
|
$("input:not(.myClass)")选取class不是myClass的<input>元素
|
:even
|
选取索引是偶数的所有元素,索引从0开始
|
集合元素
|
$("input:even")选取索引是偶数的<input>元素
|
:odd
|
选取索引是奇数的所有元素,索引从0开始
|
集合元素
|
$("input:odd")选取索引是奇数的<input>元素
|
:eq(index)
|
选取索引等于index的元素(index从0开始)
|
单个元素
|
$("input:eq(1)")选取索引等于1的<input>元素
|
:gt(index)
|
选取索引大于index的元素(index从0开始)
|
集合元素
|
$("input:gt(1)")选取索引大于1的<input>元素(注:大于1,而不包括1)
|
:lt(index)
|
选取索引小于index的元素(index从0开始)
|
集合元素
|
$("input:lt(1)")选取索引小于1的<input>元素(注:小于1,而不包括1)
|
:header
|
选取所有的标题元素,例如h1,h2,h3等等
|
集合元素
|
$(":header")选取网页中所有的<h1>,<h2>,<h3>......
|
:animated
|
选取当前正在执行动画的所有元素
|
集合元素
|
$("div:animated")选取正在执行动画的<div>元素
|
分享到:
相关推荐
- **强大的选择器**:提供了一套简洁高效的选择器语法,方便开发者快速定位DOM元素。 - **出色的DOM操作**:对DOM操作进行了很好的封装,使得原本复杂的DOM操作变得简单易行。 - **可靠的事件处理机制**:提供了统一...
#### 一、jQuery基础概览与选择器 **1.1 jQuery概述** jQuery是一款快速、简洁的JavaScript库,旨在简化HTML文档遍历、事件处理、动画以及Ajax交互等操作。它通过提供一个简单、统一的API来封装原生JavaScript的...
- **强大的选择器**:提供了简洁易用的选择器语法,使得DOM操作更加简单直观。 - **DOM操作封装**:对DOM操作进行了良好的封装,提高了效率。 - **可靠的事件处理机制**:提供了一套稳定的事件处理机制。 - **完善的...
jQuery的选择器是其一大亮点,它支持CSS1到CSS3的选择器,甚至还有特有的jQuery选择器,如`:first`、`:last`、`:even`等,使得选择元素变得非常简单。 4.2 动画效果轻松实现 jQuery提供了`.slideUp()`、`.slideDown...
Jworld@TW技术论坛版主,Java权威技术顾问与专业讲师,Java畅销书作者——林信良全新力作。 国内第一本Java 7,前期版本累计销量5万册。 《Java JDK 7学习笔记》针对Java SE 7新功能全面改版,无论是章节架构或...
{4.1}\ttfamily java.util.ArrayList}{80}{section.4.1} {4.2}\ttfamily java.util.LinkedList}{81}{section.4.2} {4.3}贪吃蛇案例}{82}{section.4.3} {4.4}散列表与HashMap}{83}{section.4.4} {4.4.1}java....