#id javascript
.classcss
elementhtml
*java
selector1,selector2,selectorNjquery
selector1 selector2 | 选择selector1的后代元素中的selector2 | $("div #d1") | 选择div元素的后代元素中全部id为d1的元素 |
selector1>selector2 | 选择selector1的子元素中的selector2 | $("div .divC") | 选择div元素的子元素中全部class为divC的元素 |
selector1+selector2 | 匹配全部紧接在 prev 元素后的 next 元素(PS:必须是紧接在后的同辈元素) | ||
selector1~selector2 | 匹配 prev 元素以后的全部 siblings 元素(PS:必须为同辈元素) |
:first | 获取匹配的第一个元素 | ||
:not(selector) | 去除全部与selector匹配的元素在jQuery 1.3中,已经支持复杂选择器了(例如:not(div a) 和 :not(div,a)) | $("div:not(#div1,#div4)") | 选择全部的div元素除了id为div1和div4的 |
:even | 匹配全部索引值为偶数的元素,从 0 开始计数,查找表格的一、三、5...行(即索引值0、二、4...) | ||
:odd | 匹配全部索引值为奇数的元素,从 0 开始计数,查找表格的二、四、6行(即索引值一、三、5...) | ||
:eq(index) | 匹配一个给定索引值的元素,从 0 开始计数 | $(".divC:eq(0)") | 选择class为divC的第一个元素 |
:gt(index) | 匹配全部大于给定索引值的元素,从 0 开始计数 | ||
:lang 1.9+ | :lang选择器,匹配有一个语言值等于所提供的语言代码,或以提供的语言代码开始,后面立刻跟一个“ - ”的元素。 | $("div:lang(en)") | 匹配<div lang="en"> and <div lang="en-us">(和他们的后代<div>),但不包括<div lang="fr"> |
:last | 获取最后个元素 | ||
:lt(index) | 匹配全部小于给定索引值的元素,从 0 开始计数 | ||
:header | 匹配如 h1, h2, h3之类的标题元素(ps:没法在header前面加选择器如div:header) | ||
:animated | 匹配全部正在执行动画效果的元素 | ||
:focus | 匹配当前获取焦点的元素。如同其余伪类选择器(那些以":"开始),建议:focus前面用标记名称或其余选择; | 换句话说,$(':focus')等同为$('*:focus') | |
:root 1.9+ | 选择该文档的根元素。在HTML中,文档的根元素,和$(":root")选择的元素同样, 永远是<html>元素。 | ||
:target 1.9+ | 选择由文档URI的格式化识别码表示的目标元素。(PS:这个不寻常的用法,可进一步讨论中找到 W3C CSS specification) |
:contains(text) | 匹配包含给定文本的元素 | $("p:contains('John')") | 查找全部包含 "John" 的 p 元素 |
:empty | 匹配全部不包含子元素或者文本的空元素 | ||
:has(selector) | 匹配含有选择器所匹配的元素的元素 | ||
:parent | 匹配含有子元素或者文本的元素 |
:hidden | 匹配全部不可见元素,或者type为hidden的元素 | ||
:visible | 匹配全部的可见元素 |
[attribute] | 匹配包含给定属性的元素。注意,在jQuery 1.3中,前导的@符号已经被废除!若是想要兼容最新版本,只须要简单去掉@符号便可。 | $("div[id]") | 查找全部含有 id 属性的 div 元素 |
[attribute=value] | 匹配给定的属性是某个特定值的元素 | $("input[name='newsletter']") | 查找全部 name 属性是 newsletter 的 input 元素 |
[attribute!=value] | 匹配全部不含有指定的属性,或者属性不等于特定值的元素。(ps:注意!和=不要留空格,会报错) | 此选择器等价于 :not([attr=value]) | |
[attribute^=value] | 匹配给定的属性是以某些值开始的元素 | ||
[attribute$=value] | 匹配给定的属性是以某些值结尾的元素 | ||
[attribute*=value] | 匹配给定的属性是以包含某些值的元素 | ||
[attrSel1][attrSel2][attrSelN] | 复合属性选择器,须要同时知足多个条件时使用。 | $("input[id][name$='man']") | 找到全部含有 id 属性,而且它的 name 属性是以 man 结尾的 |
selector:first-child | 匹配selector所选元素中在其父元素里的第一个子元素。(若所选元素不是第一个子元素则不选择) |
||
:first-of-type 1.9+ | 结构化伪类,匹配E的父元素的第一个E类型的孩子。等价于:nth-of-type(1) 选择器。 | $("span:first-of-type"); | 查找span元素的父元素的子元素的第一个span元素 |
:last-child | 匹配selector所选元素中在其父元素里的最后一个子元素 | $("ul li:last-child") | 在每一个 ul 中查找最后一个 li |
:last-of-type 1.9+ | 结构化伪类,匹配E的父元素的最后一个E类型的孩子 | ||
:nth-child() | 匹配其父元素下的第N个子或奇偶元素,要匹配元素的序号,从1开始(参考first-child,示例在此表格以后) | ||
:nth-last-child() 1.9+ | 选择全部他们父元素的第n个子元素。计数从最后一个元素开始到第一个。(与:nth-child()x类似,从后开始计数) | ||
:nth-last-of-type() 1.9+ | 选择的全部他们的父级元素的第n个子元素,计数从最后一个元素到第一个。 | ||
:nth-of-type(n|even|odd|formula)1.9+ | 选择同属于一个父元素之下,而且标签名相同的子元素中的第n个。odd奇数,even偶数 | ||
:only-child | 若是某个元素是父元素中惟一的子元素,那将会被匹配 | ||
:only-of-type 1.9+ | 选择全部没有兄弟元素,且具备相同的元素名称的元素 |
<div > <span>1</span> <p>2</p> <p>3</p> </div> <div > <p>4</p> <p>5</p> </div>
示例浏览器
$("p:first-child").css("color","red");
结果:只有4变红动画
$("p:first-of-type").css("color","red");
结果:2和4变红ui
$("p:nth-child(2)").css("color","red");
结果:2和5变红spa
:input | 匹配全部 input, textarea, select 和 button 元素 | ||
:text | 匹配全部的单行文本框 | ||
:password | 匹配全部密码框 | ||
:radio | 匹配全部单选按钮 | ||
:checkbox | 匹配全部复选框 | ||
:submit | 匹配全部提交按钮,理论上只匹配 type="submit" 的input或者button,可是如今的不少浏览器,button元素默认的type即为submit,orm 因此不少状况下,不设置type的button也会成为筛选结果。为了防止歧义或者误操做,建议全部的button在使用时都添加type属性。 |
||
:image | 匹配全部图像域 | ||
:reset | 匹配全部重置按钮 | ||
:button | 匹配全部按钮 | ||
:file | 匹配全部文件域 |
:enabled | 匹配全部可用元素 ,没被禁用的(PS:disabled="disabled"禁用按钮) | ||
:disabled | 匹配全部不可用元素 | ||
:checked | 匹配全部选中的被选中元素(复选框、单选框等,select中的option),对于select元素来讲,获取选中推荐使用 selected |
||
:selected | 匹配全部选中的option元素 |
$.escapeSelector(selector) 3.0+
这个方法一般被用在类选择器或者ID选择器中包含一些CSS特殊字符的时候,这个方法基本上与CSS中CSS.escape()方法相似,惟一的区别是jquery中的这个方法支持全部浏览器。
$( "div" ).find( "." + $.escapeSelector( ".box" ) );
选择出类中包含.box的div