<button class="btn">按钮</button>
<button id="btninfo" class="btn">按钮</button>
<button class="btn">按钮</button>
<button class="btn">按钮</button>
<input type="text" disabled/>
<input type="radio"/>
<input type="password"/>
<input type="checkbox"/>
<input type="file"/>
<input type="button"/>
<input type="submit"/>
<input type="reset"/>
<select></select>
<textarea></textarea>
<ul class="menu">
<h3>选择器0</h3>
<li>选择器1</li>
<li>选择器2
<h3>测试</h3>
<ul>
<li>2-1</li>
<li>2-2</li>
</ul>
</li>
<li class="three">选择器3</li>
<li>选择器4</li>
<li>选择器5</li>
<h3>选择器6</h3>
</ul>
<div class=".box"></div>
一、基本选择器
选择器 | 概述 |
---|
#id | 根据给定的ID匹配一个元素。 |
element | 根据给定的元素标签名匹配所有元素。 |
.class | 根据给定的css类名匹配元素。 |
prev ~ siblings | 匹配所有元素 |
selector1,selector2,selectorN | 将每一个选择器匹配到的元素合并后一起返回。 |
console.log($(".btn"));
console.log($("#btninfo"));
console.log($("button"));
console.log($("*"));
console.log($("#btninfo,h3"));
二、层级选择器
选择器 | 概述 |
---|
ancestor descendant | 在给定的祖先元素下匹配所有的后代元素 |
parent > child | 在给定的父元素下匹配所有的子元素 |
prev + next | 匹配所有紧接在 prev 元素后的 next 元素 |
prev ~ siblings | 匹配 prev 元素之后的所有 siblings 元素 |
console.log($('ul.menu li'));
console.log($('ul.menu>li'));
console.log($('.three+li'));
console.log($('.three+*'));
console.log($('.three~*'));
三、筛选器
选择器 | 概述 |
---|
:first | 获取第一个元素 |
:not(selector) | 去除所有与给定选择器匹配的元素 |
:even | 匹配所有索引值为偶数的元素,从 0 开始计数 |
:odd | 匹配所有索引值为奇数的元素,从 0 开始计数 |
:eq(index) | 匹配一个给定索引值的元素 |
:gt(index) | 匹配所有大于给定索引值的元素 |
:last | 获取最后个元素 |
:lt(index) | 匹配所有小于给定索引值的元素 |
:header | 匹配如 h1, h2, h3之类的标题元素 |
:animated | 匹配所有正在执行动画效果的元素 |
:focus | 匹配当前获取焦点的元素。 |
console.log($('.menu>li:first'));
console.log($('li:first'));
console.log($('li:not(.three)'));
console.log($('.menu>li:even'));
console.log($('menu>li:odd'));
console.log($('.menu>li:eq(1)'));
console.log($('.menu>li:lt(2)'));
console.log($('.menu>li:gt(2)'));
console.log($('.menu>li:last'));
console.log($(':header'));
console.log($(':animated'));
console.log($(':focus'));
四、内容选择器
选择器 | 概述 |
---|
:contains(text) | 匹配包含给定文本的元素 |
:empty | 匹配所有不包含子元素或者文本的空元素 |
:has(selector) | 匹配含有选择器所匹配的元素的元素 |
:parent | 匹配含有子元素或者文本的元素 |
console.log($("li:contains(选)"));
console.log($(":empty"));
console.log($("ul:has(.three)"));
console.log($(":parent"));
五、可见性选择器
选择器 | 概述 |
---|
:hidden | 匹配所有不可见元素,或者type为hidden的元素 |
:visible | 匹配所有的可见元素 |
console.log($('body:visible'));
console.log($('body:hidden'));
六、子元素选择器
选择器 | 概述 |
---|
:first-child | 匹配所给选择器( :之前的选择器)的第一个子元素 |
:first-of-type | 结构化伪类,匹配E的父元素的第一个E类型的孩子。等价于:nth-of-type(1) 选择器。 |
:last-child | 匹配最后一个子元素 |
:last-of-type | 结构化伪类,匹配E的父元素的最后一个E类型的孩子 |
:nth-child | 匹配其父元素下的第N个子或奇偶元素 |
:nth-last-child() | 选择所有他们父元素的第n个子元素。计数从最后一个元素开始到第一个。 |
:nth-last-of-type() | 选择的所有他们的父级元素的第n个子元素,计数从最后一个元素到第一个。 |
:nth-of-type() | 选择同属于一个父元素之下,并且标签名相同的子元素中的第n个。 |
:only-child | 如果某个元素是父元素中唯一的子元素,那将会被匹配 |
:only-of-type | 选择所有没有兄弟元素,且具有相同的元素名称的元素。 |
console.log($('ul:first-child'));
console.log($('ul:last-child'));
console.log($('.menu>li:first-of-type'));
console.log($('.menu>li:last-of-type'));
console.log($('.menu>li:nth-child(2)'));
console.log($('.menu>li:nth-of-type(2)'));
console.log($('.menu>li:only-child'));
console.log($('li>ul:only-child'));
console.log($('ul:only-of-type'));
七、表单选择器
选择器 | 概述 |
---|
:input | 匹配所有 input, textarea, select 和 button 元素 |
:text | 匹配所有的单行文本框 |
:password | 匹配所有密码框 |
:radio | 匹配所有单选按钮 |
:checkbox | 匹配所有复选框 |
:submit | 匹配所有提交按钮 |
:image | 匹配所有图像域 |
:reset | 匹配所有重置按钮 |
:button | 匹配所有按钮 |
:file | 匹配所有文件域 |
console.log($(':input'));
console.log($(':checkbox'));
console.log($(':radio'));
console.log($(':reset'));
console.log($(':submit'));
console.log($(':checked'));
- 注:submit: 匹配所有提交按钮,理论上只匹配 type=“submit” 的input或者button,但是现在的很多浏览器,button元素默认的type即为submit,所以很多情况下,不设置type的button也会成为筛选结果。为了防止歧义或者误操作,建议所有的button在使用时都添加type属性。
八、表单对象属性选择器
选择器 | 概述 |
---|
:enabled | 获取第一个元素 |
:disabled | 去除所有与给定选择器匹配的元素 |
:checked | 匹配所有索引值为偶数的元素,从 0 开始计数 |
:selected | 匹配所有索引值为奇数的元素,从 0 开始计数 |
console.log($(':disabled'));
console.log($(':enabled'));
九、属性选择器
选择器 | 概述 |
---|
[attribute] | 匹配包含给定属性的元素 |
[attribute=value] | 匹配给定的属性是某个特定值的元素 |
[attribute!=value] | 匹配所有不含有指定的属性,或者属性不等于特定值的元素。 |
[attribute^=value] | 匹配给定的属性是以某些值开始的元素 |
[attribute$=value] | 匹配给定的属性是以某些值结尾的元素 |
[attribute*=value] | 匹配给定的属性是以包含某些值的元素 |
[attrSel1][attrSel2][attrSelN] | 复合属性选择器,需要同时满足多个条件时使用。 |
console.log($('input[type]'));
console.log($('input[type = text]'));
console.log($('input[type != text]'));
console.log($('input[type ^= t]'));
console.log($('input[type $= o]'));
console.log($('input[type *= e]'));
十、混淆选择器
选择器 | 概述 |
---|
$.escapeSelector(selector) | 针对class和id名字中有特殊符号 |