三、jQuery的API (一)- 选择器模块

一、$作为工具类

	
	$.each() 遍历数组或对象中的数据
	$.trim() 取出首位空格
	$.type() 得到数据的类型
	$.isArray() 判断是否为数组
	$.isFunction() 判断是否为函数
	$.parseJSON(str)  解析json字符串为json对象或json数组
		

<script>


    //1、$.each() 遍历对象或数组
    //遍历数组
    $.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);
    })

    //2、$.trim()取出首尾空格
    console.log($.trim("  xxxx xxx  "))

    //3、$.type(obj) 得到对象的数据类型
    console.log($.type(window));
    console.log($.type($))

    //4.$.isArray(obj) 判断是否为数组
    console.log($.isArray($))
    console.log($.isArray(new Array(2)))


    //5、$.isFunction 判断是否为函数
    console.log($.isFunction(Date))
    console.log($.isFunction($))

    //6、$.parseJSON(str) 将字符串转化为对象
    //json字符串 --> json对象
    var $obj=$.parseJSON('{"name":"12","age":12}')
    console.log($obj.name)
    //json字符串 --> json数组
    var $arr=$.parseJSON('[{"name":"12","age":12},122,3434]')
    console.log($arr[1])


</script>


在这里插入图片描述

>>>>>> 多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=$(".tab-wrapper li").index(this);
                            // $(".box").each(function(){
                            //         this.style.display="none";
                            // })
                            // $(".box")[index].style.display="inline-block";
                            
                            //方式二:jQuery的API
                            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>

在这里插入图片描述

二、选择器模块

		
	$(selector)
			1) 选择器就是有特定语法规则的字符串 (css选择器的语法规则)

			2) 根据选择器规则查找所有匹配的DOM元素,并封装为jQuery伪数组对象。
			
			3) 它完全支持css的选择器语法。同时也在css选择器基础之上进行了拓展。
				 	
				 		所以jQuery不仅支持css选择器规则,
				 		也进行了一部分拓展。
			
				 	
	
	
	jQuery支持选择器
		 	1) jQuery完全支持css选择器规则。
					
					基础选择器、交集选择器、并集选择器、伪类选择器、
					关系选择器、属性选择器等。
	
			2) jQuery拓展了选择器规则
					a、过滤选择器		
								在css中的伪类选择器基础之上拓展了过滤选择器
								
					b、表单选择器
			

在这里插入图片描述

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>
	
	   /** 1、选择所有DIV元素*/
	    $("div").css({"color":"red"});
	
	    /** 2、选择ID为b1的元素*/
	    $("#b1").css({"color":"blue"});
	
	    /** 3、选择class为box的元素*/
	    $(".box").css({"color":"yellow"});
	
	    /** 4、选择所有div和span*/
	    $("div,span").css({"color":"pink"});
	
	    /** 5、选择所有class属性为box的div*/
	    $("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>

   /** 1、后代选择器: 选择ul下所有span*/
    $("ul span").css({"color":"red"});

   /** 2、子类选择器: 选择ul下所有子类span*/
   $("ul > span").css({"color":"blue"});

    /** 3、兄弟选择器: 选择class为box的下一个li标签*/
    $(".box+li").css({"color":"yellow"});


    /** 4、兄弟选择器: 选择ul下class为box后面的所有兄弟元素*/
    $("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>

    //1、获取含有title属性的li标签
    $("li[title]").css("background-color","red");

    //2、class为ab的li标签
    $("li[class=ab]").css("background-color","blue");



</script>

</html>

在这里插入图片描述

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>

在这里插入图片描述

>>>>>> 案例:表格的隔行变色
<!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;
    }

    /* table tr:nth-of-type(2n){
        background-color: rgba(19, 64, 146, 0.5);
    }

    table tr:hover{
        background-color: rgba(16, 73, 230, 0.5)
    }

    #dj{
        background-color: rgba(16, 73, 230, 0.5)
    } */

    
</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>

在这里插入图片描述

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(){

        //1.获取第一个元素
        $("li:first").css("color","blue")
        //2.获取最后个元素
        $(".box:last").css("color","blue")

        //3、获取奇数元素
        $("li:even").css("background-color","yellow")
        //4、获取偶数元素
        $("li:odd").css("background-color","pink")

        //5、排除class不是box的li元素
        $("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>

        //1、选择第二个,第三个元素
        //注意:索引值从0开始
        $("li:eq(1),li:eq(2)").css({"color":"red"});


        //2、选择第二个,第三个元素
        //注意:多个过滤选择器是依次执行,不是同时执行的。
        // 	    即过滤索引值>0后,在此基础之上在过滤索引值<2。就相当于取第二个,第三个元素
        $("li:gt(0):lt(2)").css({"background-color":"pink"});


</script>

</html>

在这里插入图片描述

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(){

        //1.获取内容含有eeee的li元素
        $("li:contains('eeee')").css("color","blue")
        
        //2.获取没有子元素的元素
        $(":empty").css("background-color","blue")

        //3.获取含有span子元素的li
        $("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>

在这里插入图片描述

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>篮球 &nbsp;<input type="checkbox" checked>乒乓球 &nbsp;<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,设置初始值
    $(":password").val("11111")
    

    //读取被选中的个数
    console.log($(":checked").length)
    //读取被选中复选框的个数
    console.log($(":checkbox:checked").length)


</script>

在这里插入图片描述

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>篮球 &nbsp;<input type="checkbox" checked>乒乓球 &nbsp;<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(){
            
            //1、给文本框赋值
            $(":text").val("123")

            //2、给密码框赋值
            $(":password").val("123123")

            //3、选择不可用的文本框
            $(":disabled").css("background-color","red");

            //4、选中select,设置默认选中南京
            $("select").val("2")


            //5、输出下拉框选中的内容
            console.log($("select>option:selected").html())

            //5、输出radio选中的个数
            console.log($(":radio:checked").length)

            //5、获取checkbox被选中的个数
            console.log($(":checkbox:checked").length)

    })

</script>
</html>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值