一、$作为工具类
$.each() 遍历数组或对象中的数据
$.trim() 取出首位空格
$.type() 得到数据的类型
$.isArray() 判断是否为数组
$.isFunction() 判断是否为函数
$.parseJSON(str) 解析json字符串为json对象或json数组
<script>
$.each([1,2,3,4],function(index,data){
console.log("index:"+index+" ;data:"+data);
})
$.each({"name":"hh","age":12},function(key,value){
console.log("key:"+key+" ;value:"+value);
})
console.log($.trim(" xxxx xxx "))
console.log($.type(window));
console.log($.type($))
console.log($.isArray($))
console.log($.isArray(new Array(2)))
console.log($.isFunction(Date))
console.log($.isFunction($))
var $obj=$.parseJSON('{"name":"12","age":12}')
console.log($obj.name)
var $arr=$.parseJSON('[{"name":"12","age":12},122,3434]')
console.log($arr[1])
</script>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e77fe5ad3ccb3fca809eae0ba8447e2d.png)
>>>>>> 多TAB页案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
<style>
.box-wrapper{
width:500px;
height:300px;
margin:200px auto;
position: relative;
}
.tab-wrapper{
list-style: none;
float: left;
z-index: 900;
position: absolute;
margin:0px;
padding:0px;
text-align: center;
top:-50px;
}
.tab-wrapper li{
display: inline-block;
width:100px;
height:50px;
background-color: rgba(228,231,235,.8);
line-height: 50px;;
}
.tab-wrapper li.btn-click{
background-color: rgb(228,231,235);
}
.box{
width:100%;
height:100%;
position: absolute;
}
.box:nth-of-type(1){
background-color: red;
}
.box:nth-of-type(2){
background-color: blue;
display: none;
}
.box:nth-of-type(3){
background-color: black;
display: none;
}
</style>
<script>
$(function(){
$(".tab-wrapper li").click(function(){
$(".tab-wrapper li").removeClass("btn-click");
$(this).addClass("btn-click");
var index=$(this).index();
$(".box").css("display","none");
$($(".box")[index]).css("display","block")
})
})
</script>
</head>
<body>
<div class="box-wrapper">
<ul class="tab-wrapper">
<li>tab1</li>
<li>tab2</li>
<li>tab3</li>
</ul>
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>
</body>
</html>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2ea385690030d8e10a9a04ff572970e9.gif)
二、选择器模块
$(selector)
1) 选择器就是有特定语法规则的字符串 (css选择器的语法规则)
2) 根据选择器规则查找所有匹配的DOM元素,并封装为jQuery伪数组对象。
3) 它完全支持css的选择器语法。同时也在css选择器基础之上进行了拓展。
所以jQuery不仅支持css选择器规则,
也进行了一部分拓展。
jQuery支持选择器
1) jQuery完全支持css选择器规则。
基础选择器、交集选择器、并集选择器、伪类选择器、
关系选择器、属性选择器等。
2) jQuery拓展了选择器规则
a、过滤选择器
在css中的伪类选择器基础之上拓展了过滤选择器
b、表单选择器
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/35afb8536b4bb457aa98b243ea46a9b6.png)
2.1 基础选择器、交集选择器、并集选择器(css选择器)
<body>
<div id="b1" class="box">测试一</div>
<div class="box">测试二</div>
<span class="box">测试三</span>
<span>测试四</span>
</body>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
<script>
$("div").css({"color":"red"});
$("#b1").css({"color":"blue"});
$(".box").css({"color":"yellow"});
$("div,span").css({"color":"pink"});
$("div.box").css({"color":"green"});
</script>
2.2 关系选择器(css选择器)
<body>
<ul>
<li>AAAA</li>
<li class="box">BBBB</li>
<li title="box"><span>CCCC</span></li>
<li title="box"><span>DDDD</span></li>
<span>EEEE</span>
</ul>
</body>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
<script>
$("ul span").css({"color":"red"});
$("ul > span").css({"color":"blue"});
$(".box+li").css({"color":"yellow"});
$("ul .box~*").css({"color":"green"});
</script>
2.3 属性选择器(css选择器)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
</head>
<body>
<ul>
<li class="abc">111</li>
<li class="ab">222</li>
<li title="a">333</li>
<li>444</li>
<li class="ab">555</li>
</ul>
</body>
<script>
$("li[title]").css("background-color","red");
$("li[class=ab]").css("background-color","blue");
</script>
</html>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0c04876b43effc028a51e5688e74348c.png)
2.4 伪类选择器(css选择器)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
</head>
<body>
<ul>
<li class="abc">111</li>
<li class="ab">222</li>
<li title="a">333</li>
<li>444</li>
<li class="ab">555</li>
</ul>
</body>
<script>
$("li:first-of-type").css("background-color","red");
$("li:last-of-type").css("background-color","blue");
</script>
</html>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b1041383b40661d6d203e514d9423fb2.png)
>>>>>> 案例:表格的隔行变色
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
table{
width:600px;
margin:20px auto;
text-align: center;
border-collapse:collapse
}
td{
padding:5px 10px;
}
table tr:first-of-type{
background-color: blue;
color:white;
}
</style>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
<script>
$(function(){
$("table>tbody>tr:nth-of-type(2n)").css({"background-color":"red"})
})
</script>
<body>
<input type="text">
<table border="1">
<tr>
<td>标签</td>
<td>标签2</td>
<td>标签3</td>
<td>标签4</td>
<td>标签5</td>
</tr>
<tr>
<td>1</td>
<td>11</td>
<td>111</td>
<td>1111</td>
<td>1111</td>
</tr>
<tr>
<td>1</td>
<td>11</td>
<td>111</td>
<td>1111</td>
<td>1111</td>
</tr>
<tr>
<td>1</td>
<td>11</td>
<td>111</td>
<td>1111</td>
<td>1111</td>
</tr>
<tr>
<td>1</td>
<td>11</td>
<td>111</td>
<td>1111</td>
<td>1111</td>
</tr>
<tr>
<td>1</td>
<td>11</td>
<td>111</td>
<td>1111</td>
<td>1111</td>
</tr>
</table>
</body>
</html>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a329853d79a41c03bee295de20b7d909.png)
2.5 过滤选择器(jQuery拓展选择器)
jQuery在css中的伪类选择器基础之上拓展了过滤器选择器。
使用方式: 过滤选择器在原有选择器基础之上过滤。
过滤器选择器(jQuery拓展选择器规则):
1) 基本
:first 获取第一个元素
:last 获取最后一个元素
:even 查找索引值为奇数元素
:odd 查找索引值为偶数元素
:eq(index) 匹配索引值对应的元素
:gt(index) 匹配所有大于索引值的元素
:lt(index) 匹配所有小于索引值的元素
:not(selector) 排除
2) 内容
:contains(text) 匹配包含给定文本的元素
:empty 匹配所有不包含子元素或者文本的空元素
:has(selector) 匹配含有某个元素的元素
3) 可见性
:hidden 匹配所有不可见元素,或者type为hidden的元素
:visible 匹配所有的可见元素
1)索引值查找
<body>
<ul>
<li>1111</li>
<li>2222</li>
<li>3333</li>
<li>4444</li>
<li></li>
<li class="box">4444</li>
<li class="box">4444eeee</li>
</ul>
</body>
<script>
$(function(){
$("li:first").css("color","blue")
$(".box:last").css("color","blue")
$("li:even").css("background-color","yellow")
$("li:odd").css("background-color","pink")
$("li:not(.box)").css("color","red")
})
</script>
>>>>>> 获取第二个与第三个元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
</head>
<body>
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
<li>444</li>
<li>555</li>
</ul>
</body>
<script>
$("li:eq(1),li:eq(2)").css({"color":"red"});
$("li:gt(0):lt(2)").css({"background-color":"pink"});
</script>
</html>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/82668aaf4df1199703fd8c526e6d5056.png)
2)根据内容查找
<body>
<ul>
<li>1111</li>
<li>2222</li>
<li>3333</li>
<li>4444</li>
<li></li>
<li class="box"><span>4444</span></li>
<li class="box">4444eeee</li>
</ul>
</body>
<script>
$(function(){
$("li:contains('eeee')").css("color","blue")
$(":empty").css("background-color","blue")
$("li:has(span)").css("color","red")
})
</script>
3)可见性(控制元素的显示与隐藏)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript" src="js/jquery-1.12.4.js"></script>
</head>
<script>
var i=0;
function dd(){
if(i%2==0){
console.log("隐藏");
$("div:visible").css({"display":"none"});
i+=1;
}else{
console.log("显示");
$("div:hidden").css({"display":"block"});
i+=1;
}
}
</script>
<body>
<button onclick="dd()">控制显示与隐藏</button>
<div style="width:100px;height:100px;background-color: red;margin-top:20px;"></div>
</body>
</html>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c11d368521ef7487d1c009fe3f66222b.gif)
2.6 表单选择器(jQuery拓展选择器)
jQuery拓展了表单选择器
1) 表单
:input
:text
:password
:radio
:checkbox
:submit
:image
:reset
:button
:file
:hidden
2) 表单对象属性
:enabled
:disabled
:checked
:selected
【表单类、表单对象类都可以直接选中元素,也可以结合使用】
1) 表单选择器分为两类,都可以直接使用选中元素,也可以结合使用
<body>
用户名:<input type="text" readonly disabled><br/><br/>
密码:<input type="password" ><br/><br/>
性别:<input type="radio" name="sex" checked="true" >男 <input type="radio" name="sex" >女<br/><br/>
爱好:<input type="checkbox" checked>篮球 <input type="checkbox" checked>乒乓球 <input type="checkbox">黑球<br/><br/>
下选矿:<select>
<option value="1" selected>上海</option>
<option value="2">南京</option>
<option value="3">背景</option>
<option value="4">徐州</option>
</select>
<br/><br/>
<input type="submit" value="提交">
</body>
<script>
$(":text").val("ttt")
$(":password").val("11111")
console.log($(":checked").length)
console.log($(":checkbox:checked").length)
</script>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/82a9f720fae49a7db12b71f810a43321.png)
2) 表单选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
用户名:<input type="text" readonly disabled><br/><br/>
密码:<input type="password" ><br/><br/>
性别:<input type="radio" name="sex" checkd="true" >男 <input type="radio" name="sex" >女<br/><br/>
爱好:<input type="checkbox" checked>篮球 <input type="checkbox" checked>乒乓球 <input type="checkbox">黑球<br/><br/>
下选矿:<select>
<option value="1" selected>上海</option>
<option value="2">南京</option>
<option value="3">背景</option>
<option value="4">徐州</option>
</select>
<br/><br/>
<input type="submit" value="提交">
</body>
<script>
$(":submit").click(function(){
$(":text").val("123")
$(":password").val("123123")
$(":disabled").css("background-color","red");
$("select").val("2")
console.log($("select>option:selected").html())
console.log($(":radio:checked").length)
console.log($(":checkbox:checked").length)
})
</script>
</html>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/26d433140d18880632400a14963f335a.png)