一、jQuery选择器分类
1、类CSS选择器
1)基本选择器
2)层次选择器
3)属性选择器
2、过滤选择器
1)基本过滤选择器
2)可见性过滤选择器
3)内容过滤选择器
4)元素过滤选择器
5)表单选择器
6)表单对象属性过滤选择器
二、选择器中的转义符号
<div id="id#a">aa</div>
<div id="id[2]">cc</div>
$("#id\\#a");
$("#id\\[2\\]");
三、基本选择器
名称 | 语法构成 | 描述 | 示例 |
---|---|---|---|
标签选择器 | element | 根据给定的标签名匹配元素 | $(“h2”)选取所有h2元素 |
类选择器 | .class | 根据给定的class匹配元素 | $(" .title")选取所有class为title的元素 |
ID选择器 | #id | 根据给定的id匹配元素 | $(" #title")选取id为title的元素 |
并集选择器 | selector1,selector2,…,selectorN | 将每一个选择器匹配的元素合并后一起返回 | $(“div,p,.title”?)选取所有div、p和拥有class为title的元素 |
交集选择器 | element.class或element#id | 匹配指定class或id的某元素或元素集合 | $(“h2.title”)选取所有拥有class为title的h2元素 |
全局选择器 | * | 匹配所有元素 | $("*")选取所有元素 |
示例:
<script type="text/javascript" language="javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" language="javascript">
$(function(){
$("#btn1").click(function(){
$("#div1").css("background-color","red");
//alert($("#div1").css("background-color"));
});
});
</script>
<div id="div1">测试盒子</div>
<input type="button" id="btn1" value="ok1">
## 四、层次选择器
|名称 | 语法构成 | 描述 |示例 |
|--|--|--|--|
| 后代选择器| ancestor descendant |选取ancestor元素里的所有descendant(后代)元素 | $("#menu span"?)选取#menu下的`<span>`元素 |
| 子选择器 | parent>child |选取parent元素下的child(子)元素|$(" #menu>span"?)选取#menu的子元素`<span>` |
| 相邻元素选择器 |prev+next | 选取紧邻prev元素之后的next元素 | $(" h2+dl "?)选取紧邻`<h2>`元素之后的同辈元素`<dl>` |
| 同辈元素选择器 |prev~sibings | 选取prev元素之后的所有siblings元素| $(" h2~dl "?)选取`<h2>`元素之后所有的同辈元素`<dl>` |
示例:
<script type="text/javascript" language="javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" language="javascript">
$(function(){
$("#btn1").click(function(){
$("#div1 span").css("color","red");
});
$("#btn2").click(function(){
$("#div1 > span").css("color","red");
});
$("#btn3").click(function(){
$("#div1+div").css("color","red");
});
$("#btn4").click(function(){
$("#div1~div").css("color","red");
});
});
</script>
<div id="div1">
<p><span>span</span></p>
</div>
<div>div2</div>
<div>div3</div>
<div>div4</div>
<input type="button" id="btn1" value="后代选择器 空格">
<input type="button" id="btn2" value="子选择器 >">
<input type="button" id="btn3" value="相邻元素选择器 +">
<input type="button" id="btn4" value="同辈元素选择器 ~">
五、属性选择器
名称 | 语法构成 | 描述 | 示例 |
---|---|---|---|
属性选择器 | [attribute] | 选取包含给定属性的元素 | $(" [href]"?)选取含有href属性的元素 |
属性选择器 | [attribute=value] | 选取等于给定属性是某个特定值的元素 | $(" [href =’#’]"?)选取href属性值为“#”的元素 |
属性选择器 | [attribute?!=value] | 选取不等于给定属性是某个特定值的元素 | $(" [href?!=’#’]"?)选取href属性值不为“#”的元素 |
属性选择器 | [attribute^=value] | 选取给定属性是以某些特定值开始的元素 | $(" [href^=‘en’]"?)选取href属性值以en开头的元素 |
属性选择器 | [attribute$=value] | 选取给定属性是以某些特定值结尾的元素 | =’.jpg’]"?)选取href属性值以.jpg结尾的元素 |
属性选择器 | [attribute*=value] | 选取给定属性是以包含某些值的元素 | $(" [href* =‘txt’]"?)选取href属性值中含有txt的元素 |
属性选择器 | [selector] [selector2] [selectorN] | 选取满足多个条件的复合属性的元素 | $(“li[id][title=新闻要点]”?)选取含有id属性和title属性为新闻要点的<li> 元素 |
示例:
<script type="text/javascript" language="javascript" src="js/jquery-3.3.1.min.js"></script>
<script>
$(function(){
//1 input标记中含有readonly属性的就可以
//$("input[readonly]").css('font-size','100px');
//2 input标记中含有value属性,并且value属性值=def
//$("input[value='def']").css('font-size','100px');
//3 input标记中含有value属性,并且value属性值以x开头的
//$("input[value^='abc']").css('font-size','100px');
//4 选择指定属性值等于给定字符串或该字符串为前缀(该字符串后跟一个连字符“-”)的元素。
//$("input[value|='abc']").css('font-size','100px');
//5 input标记中含有value属性,并且value属性值以x结尾的
//$("input[value$='x']").css('font-size','100px');
//6 input标记中含有value属性,并且value属性值不等于abc
//$("input[value!='abc']").css('font-size','100px');
//7 input标记中含有value属性,并且value属性值带有abc单词的
//$("input[value~='abc']").css('font-size','100px');
//8包含
//$("input[value*='bc']").css('font-size','100px');
//9多个条件的并且
$("input[type=text][value*='bc']").css('font-size','100px');
});
</script>
</head>
<body>
<input type="text" value="abc- x">
<input type="text" value="abc x" readonly="readonly">
<input type="text" value="bcd y">
<input type="text" value="def">
<input type="button" value="abc">
</body>
</html>
六、过滤选择器
过滤选择器通过特定的过滤规则来筛选元素
语法特点是使用“:”,如使用$(“li:first”)来选取第一个li元素
主要分类如下:
基本过滤选择器
可见性过滤选择器
内容过滤选择器
表单选择器
表单对象属性过滤选择器
……
1、 基本过滤选择器
名称 | 语法构成 | 描述 | 示例 |
---|---|---|---|
:first | 选取第一个元素 | $(" li:first"?)选取所有<li> 元素中的第一个<li> 元素 |
|
:last | 选取最后一个元素 | $(" li:last"?)选取所有<li> 元素中的最后一个<li> 元素 |
|
:even | 选取索引是偶数的所有元素(index从0开始) | $(" li:even"?)选取索引是偶数的所有<li> 元素 |
|
:odd | 选取索引是奇数的所有元素(index从0开始) | $(" li:odd"?)选取索引是奇数的所有<li> 元素 |
|
eq(index) | 选取索引等于index的元素(index从0开始) | $(“li:eq(1)”?)选取索引等于1的<li> 元素 |
|
gt(index) | 选取索引大于index的元素(index从0开始 | $(" li:gt(1)"?)选取索引大于1的<li> 元素(注:大于1,不包括1) |
|
lt(index) | 选取索引小于index的元素(index从0开始 | $(“li:lt(1)”?)选取索引小于1的<li> 元素(注:小于1,不包括1) |
|
not(selector) | 选取去除所有与给定选择器匹配的元素 | $(" li:not(.three)"?)选取class不是three的元素 | |
header | 选取所有标题元素,如h1~h6 | $(":header"?)选取网页中所有标题元素 | |
focus | 选取当前获取焦点的元素 | $(":focus"?)选取当前获取焦点的元素 |
示例:
<script type="text/javascript" language="javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" language="javascript">
$(function(){
$("#btn1").click(function(){
$("ul li:first").css("background-color","red");
});
$("#btn2").click(function(){
$("ul li:last").css("background-color","red");
});
$("#btn3").click(function(){
$("ul li:even").css("background-color","red");
});
$("#btn4").click(function(){
$("ul li:odd").css("background-color","red");
});
$("#btn5").click(function(){
$("ul li:eq(2)").css("background-color","red");
});
$("#btn6").click(function(){
$("ul li:gt(1)").css("background-color","red");
});
$("#btn7").click(function(){
$("ul li:lt(3)").css("background-color","red");
});
$("#btn8").click(function(){
$("ul li:not(.three)").css("background-color","red");
});
$("#btn9").click(function(){
$(":not('input')").css("background-color","red");
});
});
</script>
<ul>
<li>吃饭</li>
<li class="three">睡觉</li>
<li>听歌</li>
<li>打豆豆</li>
</ul>
<select>
<option>hh</option>
<option>ii</option>
</select>
<input type="button" id="btn1" value="ul li:first">
<input type="button" id="btn2" value="ul li:last">
<input type="button" id="btn3" value="ul li:even">
<input type="button" id="btn4" value="ul li:odd">
<input type="button" id="btn5" value="ul li:eq(2)">
<input type="button" id="btn6" value="ul li:gt(1)">
<input type="button" id="btn7" value="ul li:lt(3)">
<input type="button" id="btn8" value="ul li:not(.three)">
<input type="button" id="btn9" value=":not('input')">
2、可见性过滤选择器
名称 | 语法构成 | 描述 | 示例 |
---|---|---|---|
visible | 选取所有可见的元素 | $(":visible"?)选取所有可见的元素 | |
hidden | 选取所有隐藏的元素 | $(":hidden"?) 选取所有隐藏的元素 |
示例:
<script type="text/javascript" language="javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" language="javascript">
$(function(){
$("#btn1").click(function(){
$("p:hidden").show();
});
$("#btn2").click(function(){
$("p:visible").hide();
});
});
</script>
<p>可见1</p>
<p>可见2</p>
<p style="display:none">不可见1</p>
<p style="display:none">不可见2</p>
<input type="button" id="btn1" value="让不可见的出来">
<input type="button" id="btn2" value="让可见的消失">
3、内容过滤选择器
名称 | 语法构成 | 描述 | 示例 |
---|---|---|---|
contains(text) | 选取含有文本内容为text的元素 | $("div:contains(“abc.com”?)选取含有abc.com文本的div元素 | |
empty | 选取不包含子元素或者文本的空元素 | $(“div:empty”?)选取不包含子元素或者文本的空div元素 | |
has(selector) | 选取含有选择器所匹配的元素的元素 | $(“ul:has(.red)”?) 选取含有class是red的ul元素 | |
parent | 选取含有子元素或者文本的元素 | $(“div:parent”?)选取含有子元素或者文本的div元素 |
示例:
<script type="text/javascript" language="javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" language="javascript">
$(function(){
$("#btn1").click(function(){
$("p:contains('郭')").css("color","red");
});
$("#btn2").click(function(){
$("p:empty").html("郭富城");
});
$("#btn3").click(function(){
$("p:has(.rrr)").html("郭");
});
$("#btn4").click(function(){
$("p:parent").html("郭郭");
});
});
</script>
<p>郭靖</p>
<p>郭娜</p>
<p></p>
<p><span class="rrr">可见1</span></p>
<p>可见2</p>
<p style="display:none">不可见1</p>
<p style="display:none">不可见2</p>
<input type="button" id="btn1" value=":contains(text)">
<input type="button" id="btn2" value=":empty">
<input type="button" id="btn3" value=":has(selector)">
<input type="button" id="btn4" value=":parent">
4、表单选择器
语法构成 | 描述 | 示例 |
---|---|---|
input | 匹配所有input、textarea、select和button 元素 | $("#myform :input")选取表单中所有的input、select和button元素 |
text | 匹配所有单行文本框 | $("#myform :text")选取email 和姓名两个input 元素 |
password | 匹配所有密码框 | $("#myform :password"?)选取所有<input type="password" /> 元素 |
radio | 匹配所有单项按钮 | $("#myform :radio")选取<input type="radio" />元素 | |
checkbox | 匹配所有复选框 | $(" #myform :checkbox "?)选取<input type="checkbox " /> 元素 |
submit | 匹配所有提交按钮 | $("#myform :submit "?)选取<input type="submit " /> 元素 |
image | 匹配所有图像域 | $("#myform :image"?)选取<input type=" image" /> 元素 |
reset | 匹配所有重置按钮 | $(" #myform :reset "?)选取<input type=" reset " /> 元素 |
button | 匹配所有按钮 | $("#myform :button"?)选取button 元素 |
file | 匹配所有文件域 | $(" #myform :file"?)选取<input type=" file " /> 元素 |
hidden | 匹配所有不可见元素,或者type 为hidden的元素 | $("#myform :hidden"?)选取<input type="hidden " /> 、style="display: none"等元素 |
示例:
<script type="text/javascript" language="javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" language="javascript">
$(function(){
$("#btn1").click(function(){
$(":text").css("border","1px solid blue");
});
});
</script>
<input type="text"><input type="text"><input type="password"><input type="password">
<input type="button" id="btn1" value=":text">
5、表单对象属性过滤选择器
语法构成 | 描述 | 示例 |
---|---|---|
enable | 选取所有可用元素 | $(“input:enabled”)选取所有可用的input元素 |
disabled | 选取所有不可用元素 | $(“input:disabled”)选取所有不可用的input元素 |
checked | 选取所有被选中的元素(单选框、复选框) | $(“input:checked”)选取所有选中的复选框元素 |
selected | 选取所有被选中选项元素(下拉列表) | $(“select option:selected”)选取所有选中的选项元素 |
示例:
<script type="text/javascript" language="javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" language="javascript">
$(function(){
$("#btn1").click(function(){
$(":text:enabled").css("border","1px solid blue");
});
$("#btn2").click(function(){
$(":text:disabled").css("border","1px solid red");
});
$("#btn3").click(function(){
alert($("#c1:checked").length);
});
$("#btn4").click(function(){
alert($("#select1 option:selected").length);
});
});
</script>
<input type="text"><input type="text">
<input type="text" disabled="disabled">
<input type="text" disabled="disabled">
<input type="password"><input type="password">
<input type="checkbox" id="c1" value="cc1" checked="checked">cc1
<input type="checkbox" id="c1" value="cc2" checked="checked">cc2
<input type="checkbox" id="c1" value="cc3">cc3
<input type="checkbox" id="c1" value="cc4">cc4
<select id="select1" multiple="multiple">
<option value="a1">a1</option>
<option value="a2">a2</option>
<option value="a3">a3</option>
</select>
<input type="button" id="btn1" value=":text:enabled">
<input type="button" id="btn2" value=":text:disabled">
<input type="button" id="btn3" value="#c1:checked">
<input type="button" id="btn4" value="#select1:selected">