一、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开始)。