锋利的jQuery笔记4.1——jQuery选择器

一、简介 

   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")选取idtest的元素

.class

根据给定的类名匹配元素

集合元素

$(".test")选取所有classtest的元素

element

根据给定的元素名匹配元素

集合元素

$("p")选取所有的<p>元素

*

匹配所有元素

集合元素

$("*")选取所有的元素

selector1,selector2,...,selectorN

将每一个选择器匹配到的元素合并后一起返回

集合元素

$("div,span,p.myClass")选取所有<div><span>和拥有classmyClass<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")选取classone的下一个<div>元素

$("prev~siblings")

选取prev元素之后的所有siblings元素

集合元素

$("#two~div")选取idtwo的元素后面的所有<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的元素(index0开始)

单个元素

$("input:eq(1)")选取索引等于1<input>元素

:gt(index)

选取索引大于index的元素(index0开始)

集合元素

$("input:gt(1)")选取索引大于1<input>元素(注:大于1,而不包括1

:lt(index)

选取索引小于index的元素(index0开始)

集合元素

$("input:lt(1)")选取索引小于1<input>元素(注:小于1,而不包括1

:header

选取所有的标题元素,例如h1,h2,h3等等

集合元素

$(":header")选取网页中所有的<h1><h2><h3>......

:animated

选取当前正在执行动画的所有元素

集合元素

$("div:animated")选取正在执行动画的<div>元素

 

你可能感兴趣的:(jquery,浏览器,css,IE)