提问:
JQuery 有几种选择器?
答:基本选择器、层级选择器、过滤选择器。(过滤选择器可再分为:基本过滤选择器、内容过滤选择器、属性过滤选择器、表单过滤选择器、表单对象属性过滤选择器)
第一节 基本选择器
基本选择器有:
#ID 选择器:(根据 id 查找标签对象 )、.class 选择器:(根据 class 查找标签对象)、 element 选择器:(根据标签名查找标签对象)、 * 选择器:(表示任意的,所有的元素 )、selector1,selector2 组合选择器:(合并选择器 1,选择器 2 的结果并返回)
ID 选择器(可以选择id名为啥啥啥的对象)
jquery代码
$(function () { $('#btn1').click(function () { $("#one").css("background-color","#ff5"); }) })
css代码
<style type="text/css"> div, span, p { width: 140px; height: 140px; margin: 5px; background: #aaa; border: #000 1px solid; float: left; font-size: 17px; } </style>
html代码
<div id="one">我是id为one的div</div> <div id="two">我是id为two的div</div> <div class="class-one">我是class为class one的div</div> <div class="class-two">我是class为class two的div</div> <div class="class-one">我是class为class one的div</div> <div class="class-two">我是class为class two的div</div> <span>我是span</span> <input type="button" value="选择 id 为 one 的元素" id="btn1" /> <input type="button" value="选择 class 为 class-one 的所有元素" id="btn2" /> <input type="button" value="选择 元素名是 div 的所有元素" id="btn3" /> <input type="button" value="选择 所有的元素" id="btn4" /> <input type="button" value="选择 span 元素" id="btn5" />
这里我们点击了,选择id为one的元素,得出效果。同样的道理,我们选择类选择器、组合选择器等等,都会选择div相对的属性效果。效果图就不一一显示了,直接看代码。
选择 class 为 class-one 的所有元素
$(function () { $('#btn2').click(function () { $(".class-one").css("background-color","#ff5"); }) })
选择 元素名是 div 的所有元素
$(function () { $('#btn3').click(function () { $("div").css("background-color","#ff5"); }) })
选择 所有的元素
$(function () { $('#btn4').click(function () { $("*").css("background-color","#ff5"); }) })
选择 span 元素
$(function () { $('#btn5').click(function () { $("span").css("background-color","#ff5"); }) })
如果我们要选div里面的div呢?我们需要$的时候加上他相对应的属性就可以了。eg:
<div class="class-two">我是class为class two的div <div class="mini">我在里面</div> </div> $(function () { $('#btn6').click(function () { $('.mini').css("background-color","#ff5"); }) })
第二节 层级选择器
ancestor descendant 后代选择器 :(在给定的祖先元素下匹配所有的后代元素)
eg:body mini 意思是选择了 body 里面的所有叫 min i的元素。
parent > child 子元素选择器:(在给定的父元素下匹配所有的子元素)
eg:div > btn 意思是选择了 div 里面的叫 btn 的元素。
prev + next 相邻元素选择器:(匹配所有紧接在 prev 元素后的 next 元素 )
eg:div + span 意思是选择了 div 后面的叫 span 的元素。
prev ~ sibings 之后的兄弟元素选择器:(匹配 prev 元素之后的所有 siblings 元素)
eg:div ~> btn 意思是选择了 div 之后所有的的叫 btn 的元素。
直接看代码
html里面
<div class="one" id="one"> id 为 one,class 为 one 的div <div class="mini">class为mini</div> </div> <div class="one" id="two" title="test"> id为two,class为one,title为test的div <div class="mini" title="other">class为mini,title为other</div> <div class="mini" title="test">class为mini,title为test</div> </div> <div class="one"> <div class="mini">class为mini</div> </div> <div style="display:none;" class="none">style的display为"none"的div</div> <div class="hide">class为"hide"的div</div> <div> 包含input的type为"hidden"的div<input type="hidden" size="8"> </div> <span id="span">span元素</span> <input type="button" value="选择 body 内的所有 div 元素" id="btn1" /> <input type="button" value="在 body 内, 选择div子元素" id="btn2" /> <input type="button" value="选择 id 为 one 的下一个 div 元素" id="btn3" /> <input type="button" value="选择 id 为 two 的元素后面的所有 div 兄弟元素" id="btn4" />
css和上面的差不多就不在写了
ancestor descendant 后代选择器 :(在给定的祖先元素下匹配所有的后代元素)
$("#btn1").click(function () { $("body div").css("background-color","#ffa") })
parent > child 子元素选择器:(在给定的父元素下匹配所有的子元素)
$("#btn2").click(function () { $("body > div").css("background-color","#ffa") })
prev + next 相邻元素选择器:(匹配所有紧接在 prev 元素后的 next 元素 )
$("#btn3").click(function () { $("#one+div").css("background-color","#ffa") })
prev ~ sibings 之后的兄弟元素选择器:(匹配 prev 元素之后的所有 siblings 元素)
$("#btn4").click(function () { $("#two~div").css("background-color","#ffa") })
第三节 过滤选择器
3.1 基本过滤器
:first 获取第一个元素
:last 获取最后个元素
:not(selector) 去除所有与给定选择器匹配的元素
:even 匹配所有索引值为偶数的元素,从 0 开始计数
:odd 匹配所有索引值为奇数的元素,从 0 开始计数
:eq(index) 匹配一个给定索引值的元素
:gt(index) 匹配所有大于给定索引值的元素
:lt(index) 匹配所有小于给定索引值的元素
:header 匹配如 h1, h2, h3 之类的标题元素
:animated 匹配所有正在执行动画效果的元素
3.2 内容过滤器
:contains(text) 匹配包含给定文本的元素
:empty 匹配所有不包含子元素或者文本的空元素
:parent 匹配含有子元素或者文本的元素
:has(selector) 匹配含有选择器所匹配的元素的元素
3.3 属性过滤器
[attribute] 匹配包含给定属性的元素。
[attribute=value] 匹配给定的属性是某个特定值的元素
[attribute!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素。 [attribute^=value] 匹配给定的属性是以某些值开始的元素
[attribute$=value] 匹配给定的属性是以某些值结尾的元素 [attribute*=value] 匹配给定的属性是以包含某些值的元素
[attrSel1][attrSel2][attrSelN] 复合属性选择器,需要同时满足多个条件时使用。
3.4 表单过滤器
:input 匹配所有 input, textarea, select 和 button 元素
:text 匹配所有 文本输入框
:password 匹配所有的密码输入框
:radio 匹配所有的单选框
:checkbox 匹配所有的复选框
:submit 匹配所有提交按钮
:image 匹配所有 img 标签
:reset 匹配所有重置按钮
:button 匹配所有 input type=button <button>按钮
:file 匹配所有 input type=file 文件上传
:hidden 匹配所有不可见元素 display:none 或 input type=hidden
3.5 表单对象属性过滤器
:enabled 匹配所有可用元素
:disabled 匹配所有不可用元素
:checked 匹配所有选中的单选,复选,和下拉列表中选中的 option 标签对象
:selected 匹配所有选中的 option
详细见jQueryAPI-1.41.chm,连接我已近放到下面了,需要的话自己拿。
链接:https://pan.baidu.com/s/1ivAcUQ06vJg2EJVItT9dkQ
提取码:c6nx