一、jquery选择器风格:
jquery中的选择器完成继承了CSS的风格。利用JQ选择器,可以非常便捷和快速找出特定的DOM元素,然后为它们添加相应的行为。使用CSS选择器时需要考滤主流浏览器是否支持某些选择器,而jquery无需担心浏览器是否支持这一选择器。
二、jquery简洁写法
(这里是美元符)()函数在很多javascript类库中都被作为一个选择器函数来使用,在jquery中也不例外。其中,(这里是美元符)("#ID")用来代替document.getElementById()函数,既通过ID获取元素;$(“tagName”)用来代替document.getElementsByTagName()函数,即可以通过标签名获取HTML元素。
三、JQuery选择器目录
1. 基本选择器
2. 层次选择器
3. 基本过滤器选择器
4. 内容过滤选择器
5. 可见性过滤选择器
6. 属性过滤选择器
7. 子元素过滤选择器
备注:因符号有冲突已在()内用文字提示
1.基本选择器
选择器 | 描述 | 返回 | 示例 |
#id | 根据给定的id匹配一个元素 | 单个元素 | $(“#test”)选取id为test的元素 |
.class | 根据给定的类名匹配元素 | 集合元素 | $(“.test")选取所有class为test的元素 |
element | 根据给定的元素名匹配元素 | 集合元素 | $(“p”)选取所有p元素 |
* | 匹配所有元素 | 集合元素 | $(“*”)选取所有元素 |
Selectorl,selector2……,selectorN | 将每一个选择器匹配到的元素集合并后一起返回 | 集合元素 | $(“div,span,p,myClass”)选取所有div,span和拥有class为myClass的p标签的一组元素 |
基本选择器示例
功能 | 代码 |
改变id为box的元素的背景色 | $(“#box”).css(“background”,”red”); |
改变class为mini的所有元素的背景色 | $(“.mini”).css(“background”,”blue”); |
改变元素名是div的所有元素的背景色 | $(“div”).css(“background”,”yellow”); |
改变所有元素的背景色 | $(“*”).css(“background”,”#bbffaa”); |
改变所有的span元素和id为two的元素的背景色 | $(“span,#two”).css(“background”,”#bbffaa”); |
2. 层次选择器
选择器 | 描述 | 返回 | 示例 |
$(“ancestor descendant”) | 选取ancestor元素里的所有descendant(后代元素) | 集合元素 | $(“div span”)选取div里的所有的span元素 |
$(“parent>child”) | 选取parent元素下的child(子)元素,与 | 集合元素 | $(“div>span”)选取div元素下元素名是span的子元素 |
$(“prev+next”) | 选取紧接在prev元素后的next元素 | 集合元素 | $(“.one+div”)选取class为one的下一个div同辈元素 |
$(“prev~siblings”) | 选取prev元素之后的所有siblings元素 | 集合元素 | $(“#two~div”)选取id为two的元素后面所有div同辈元素 |
层次选择器示例
功能 | 代码 |
改变内所有 的背景色 | $(“body div”).css(“background”,”red”); |
改变内子 元素的背景色 | $(“body >div”).css(“background”,”red”); |
改变class为one的下一个 同辈元素背景色 | $(“.one + div”).css(“background”,”red”); |
改变id为two的元素后面的所有 同辈的背景色 | $(“#two~div”).css(“bakground”,”red”); |
$(“.one+div”); | $(“.one”).next(“div”); |
$(“#prev~div”); | $(“#prev”).nextAll(“div”); |
3.基本过滤器选择器
选择器 | 描述 | 返回 | 示例 |
:first | 选取第1个元素 | 单个元素 | $(“div:first”)选取div元素中第1个div元素 |
:last | 选取最后一个元素 | 单个元素 | $(“div:last”)选取div中最后1个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:eqq(1)”)选取索引等于1的input的元素 |
:gt(index) | 选取索引大于index的元素 | 集合元素 | $(“input:gt(1)”)选取索引大于1的input元素(注:大于1,不包括1) |
:lt(index) | 选取索小于index的元素 | 集合元素 | $(“input:lt(5)”)选取索引小于5的input元素(注:小于5,不包括5) |
:header | 选取所有的标题元素,例如:h1 h2 h3等 | 集合元素 | $(:header)选取网页中所有的h1、h2、h3…. |
:animated | 选取当前正在执行动画所有元素 | 集合元素 | $(“div:animated”)选取正在执行动画的div元素 |
:focus | 选取当前获取焦点的元素 | 集合元素 | $(“:focus”)选取当前获取焦点的元素 |
基本过滤器选择器示例
功能 | 代码 |
改变第1个div元素的背景色 | $(“div:first”).css(“background”,”red”); |
改变最后1个div元素的背景色 | $(“div:last”).css(“background”,”red”); |
改变class不为one的div元素背景色 | $(“div:not(.one)”).css(“background”,”red”); |
改变索引值为偶数的div元素的背景色 | $(“div:even”).css(“bakground”,”red”); |
改变索引值为奇数的div元素的背景色 | $(“div:odd”).css(“background”,”red”); |
改变索引值等于3的div元素的背景色 | $(“div:eq(3) .css(“background”,”red”); |
改变索引值大于3的div元素的背景色 | $(“div:gt(3).css(“background”,“red”); |
改变索引值小于3的div元素的背景色 | $(“div:lt(3)”).css(“background”,”red”); |
改变所有标题元素,例如:h1、h2、h3…. | $(“:header”).css(“background”,”red”); |
改变当前正在执行的动画的元素的背景色 | $(“:animated”).css(“background”,”red”); |
改变当前获取焦点的元素背景色 | $(“:focus”).css(“background”,”red”); |
4. 内容过滤选择器
选择器 | 描述 | 返回 | 示例 |
:contains(text) | 选取文本为”text”的元素 | 集合元素 | $(“div:contains(‘我’)选取含有文本“我”的 元素 |
:empty | 选取不包含子元素或者文本的空元素 | 集合元素 | $(“div:empty”)选取不包含子元素(包括文本元素)的div元素 |
:has(selector) | 选取含有选择器所匹配的元素的元素 | 集合元素 | $(“div:has§”)选取含有p元素的 元素 |
:parent | 选取含有子元素或者文本的元素 | 集合元素 | $(“div:parent”)选取拥有子元素(包括文本元素)的div元素 |
内容过滤选择器示例
功能 | 代码 |
改变含有文本di的div元素背景色 | $(“div:contains(di)”).css(“background”,”red”); |
改变不包含子元素(包括文本元素)的div空元素的背景色 | $(“div:empty”).css(“background”,”red”); |
改变class为mini元素的div元素的背景色 | $(“div:has(.mini)”).css(“background”,”red”); |
改变含有子元素(包括文本元素)的div元素的背景色 | $(“div:prent”).css(“background”,”red”); |
5. 可见性过滤选择器
选择器 | 描述 | 返回 | 示例 |
:hidden | 选取所有不可见的元素 | 集合元素 |
|
:visible | 选取所有可见元素 | 集合元素 | $(“div:visible”)选取所有可见的div元素 |
可见性过滤器示例
功能 | 代码 |
改变所有可见的 元素的背景色 | $(“div:visible”).css(“background”,”red”); |
显示隐藏的 元素 | $(“div:hidden”).show(3000); |
6. 属性过滤选择器
选择器 | 描述 | 返回 | 示例 |
[attribute] | 选取拥有此属性的元素 | 集合元素 | $(“div[id]”)选取拥有属性id的元素 |
[attribute=value] | 选取属性的值为value的元素 | 集合元素 | $(“div[title=test]”)选取属性title为”test”的 元素 |
[attribute!=value] | 选取属性的值不等于value | 集合元素 | $(“div[title!=test]”)选取属性title不等于”test”的div元素(注意:没有属性title的div元素也会被选取) |
[attribute^=value] | 选取属性的值以value开始的元素 | 集合元素 | $(“div[title^=test]”)选取属性title以“test”开始的元素 |
[attribute$=alue] | 选取属性的值以value结束的元素 | 集合元素 |
|
[attribute*=value] | 选取属性的值包含有value的元素 | 集合元素 | $(“div[title*=test”])选取属性title含有“test”的div元素 |
[attribute> (这里有条竖线)=value] | 选取属性等于给定字符串或以该字符串为前缀(该字符串后跟一个连字符“-”)的元素 | 集合元素 $(‘div[tiele | =”en”]’)选取属性title等于en或以en为前缀(该字符串后跟一个连字符“-”)的元素 |
[attribute~=value] | 选取属性用空格分隔的值中包含一个给定值的元素 | 集合元素 | $(’div[title~=”uk”]’)选取属性title用空格分隔的值中包含字符uk的元素 |
[attribute 1][attribute2] | 用属性选择器合并成一个复合属性选择器,满足多个条件。每选择一次,缩小一次范围 | 集合元素 |
|
属性过滤选择器示例
功能 | 代码 |
改变含有属性title的div元素的背景色 | $(“div[title]”).css(“background”,”red”); |
改变属性title值等于”test”的div元素的背景色 | $(“div[title=test]”).css(“background”,”red”); |
改变属性title值不等于”test”的div元素的背景色 | $(“div[title!=test]”).css(“background”,”red”); |
改变属性title值以”te”开始的div元素的背景色 | $(“div[title^=te]”).css(“background”,”red”); |
改变属性title值以”est”结束的div元素的背景色 |
|
改变属性title值含有”es”的div元素的背景色 | $(“div[title*=es]”).css(“background”,”red”); |
改变含有属性id,并且属性title值含有”es”的div元素的背景色 | $(“div[id][title*=es]”).css(“background”,”red”); |
改变属性title值以”en”开始的div元素背景色 | $(“div[title^=”en”]”).css(“background”,”red”); |
改变属性title等于en或en为前缀(该字条串后跟一个连字符’-‘)的元素的背景色 | $(“div[title (这里有条竖线)=”en”]”).css(“background”,”red”); |
改变属性title用空格分隔的值中包含字符uk的元素的背景色 | $(“div[title~=”UK”]”).css(“background”,”red”); |
7. 子元素过滤选择器
选择器 | 描述 | 返回 | 示例 |
:nth-child(index/even/odd/equation) | 选取每个父元素下的第index个子元素或奇偶元素。(index从1算起) | 集合元素 | :eq(index)只匹配一个元素,面:nth-child将为每个父元素,并且:nth-child(index)的index是从1开始的,成eq(index)是从0算起。 |
:first-child | 选取每个父元素的第1个子元素 | 集合元素 | :first只返回单个元素,而:first-child选择符将为每个父元素匹配第1个子元素例如:$(“ul li:first-child”),选取每个ul中第1个li元素 |
:last-child | 选取每个父元素的最后一个子元素 | 集合元素 | 同样,:last只返回单个元素,面:last-child选择符将为每个父元素匹配最后1个子元素例如:$(“ul li:last-child”),选取每个ul中最后1个li元素 |
:only-child | 如果某个元素是它父元素中惟一的子元素,那么将会匹配。如果父元素中包含其他元素,则不会被匹配。 | 集合元素 | $(:ul li:only-child”)在ul中选取是惟一子元素的li元素 |
子元素过滤选择器示例
功能 | 代码 |
改变每个class为one的div父元素下的第2个子元素的背景色 | $(“div.one:nth-child(2)”).css(“background”,”red”); |
改变每个class为one的div父元素下的第1个子元素的背景色 | $(“div.one:first-child”).css(“background”,”red”); |
改变每个class为one的div父子元素下的最后一个子元素的背景色 | $(“div.one:last-child”).css(“background”,”red”); |
如果class为one的div父子元素下只有一个元素,那么则改变这个子元素的背景色 | $(“div.one:only-child”).css(“background”,”red”); |