一、jQuery选择器简介:

jQuery选择器完全继承了CSS的风格,利用jQuery选择器,可以非常便捷和快速的找出特定的DOM元素,然后为他们增加相应的行为,无需担心浏览器是否支持这一选择器。


二、jQuery选择器优势:

1、写法简洁:

在jQuery中,用$(“selectorName”)作为一个选择器函数来使用,如使用$(".className")表示通过类名来获取元素,使用$("#ID")表示使用通过ID来获取元素,等同于javascript的getElementByID("ID")函数,使用$("tagName")表示通过标签名来获取元素,等同于document.getElementByTagName("tagName")函数。

2、支持全面:

jQuery支持CSS1、CSS2的全部选择器和CSS3的部分选择器,同时还有少量的独有选择器。

3、处理机制完善:

使用jQuery选择器不仅比传统的javascript函数简洁的多,还能避免很多的错误,使用传统的js函数来获取元素时,如果页面上没有这个元素,那么浏览器就会报错,需要做判断才可以进行,这样会产生大量的代码,而使用jQuery则可以完美处理这个问题,页面上如不存在该元素也不会产生报错。


三、jQuery选择器:

1、基本选择器:

通过元素的ID、class和标签名等来查找元素,在网页中,id只能使用一次,class可以重复使用。

jQuery基本选择器

选择器

功能描述

返回结果

$("#id")

ID选择器,根据给定的ID匹配一个元素

单个元素

$(".class")

类选择器,根据给定的类名匹配元素

集合元素

$("element")

元素选择器,根据给定的标签名匹配元素

集合元素

$("*")

匹配所有元素

集合元素

$("selector1,selector2...selectorN")

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

集合元素

2、层次选择器:

层次选择器是指通过DOM元素之间层级关系来获取特定元素,常用的有后代元素、子元素、相邻元素选择器等等。

 

jQuery层次选择器

选择器

 功能描述

返回结果

$("ancestor descendant")

选取ancestor元素里的所有的后代元素

集合元素

$("parent>child")

选取parent元素下的所有子元素,区别于$("ancestor descendant")选择器,该选择器返回的是所有的后代元素,不止一个层级

集合元素

$("prev+next")

选择紧接在prev元素后的next元素,目前基本使用$("prev").next()方法来代替

集合元素

$("prev~siblings")

选取prev元素后的所有的同辈元素,目前基本使用$("prev").nextAll()方法代替

集合元素

3、过滤选择器

过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类选择器语法相同,都已冒号(:)开头,按照不同的规则,过滤选择器可以分为基本过滤选择器、内容过滤选择器、可见性过滤选择器、属性过滤选择器、子元素过滤选择器和表单对象过滤选择器6大类,本文中主要介绍基本过滤选择器、内容过滤选择器和子元素过滤选择器3类。

3.1、基本过滤选择器

基本过滤选择器

选择器

功能描述

返回结果

:first

 选取第一个元素

单个元素

:last

选取最后一个元素

单个元素

:not(selector)

去除所有与给定选择器匹配的元素

集合元素

:even

选取索引是偶数的所有元素,index从0开始

集合元素

:odd

选取索引是奇数的所有元素,index从0开始

集合元素

:eq(index)

选取索引等于index的元素,index从0开始

单个元素

:gt(index)

选取索引大于index的元素,index从0开始

集合元素

:lt(index)

选取索引小于index的元素,index从0开始

集合元素

:header

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

集合元素

:animated

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

集合元素

:focus

选取当前获取焦点的所有元素

集合元素

3.2、内容过滤选择器:

jQuery内容过滤选择器

选择器

功能描述

返回结果

:contains(text)

选取含有文本内容为“text”的元素

集合元素

:empty

选取不包含子元素或者文本的空元素

集合元素

:has(selector)

选取含有选择器所匹配的元素的元素

集合元素

:parent

选取含有子元素或者文本的元素

集合元素

3.3、子元素过滤选择器:

jQuery子元素过滤选择器

选择器

功能描述

返回结果

:nth-child

(even/odd/

index/equation)

选取每个父元素下的第index个子元素或者奇/偶元素(index从1开始),区别于:eq(index),eq()值匹配一个元素,index从0开始计算

集合元素

:first-child

选取每个父元素的第1个子元素,区别于:first,:first只返回单个元素

集合元素

:last-child

选取每个父元素的第1个子元素,区别于:last,:last只返回单个元素

集合元素

:only-child

如果某个元素是它父元素中唯一的子元素,那么将会被匹配,如果父元素中含有其他元素,则不会被匹配。

集合元素

:nth-child()选择器是很常用的子元素过滤选择器,功能强大,常用作与表格等隔行换色使用:

1、:nth-child(even):选取每个父元素下的索引值是偶数的元素;

2、:nth-child(odd):选取每个父元素下的索引值是奇数的元素;

3、:nth-child(2):选取每个父元素下的索引值是2的元素;

4、:nth-child(3n):选取每个父元素下索引值是3的倍数的元素(n从1开始);

5、:nth-child(3n+1):选取每个父元素下索引值是(3的倍数+1)的元素(n从1开始)。