JQuery大法--jQuery选择器

一、jQuery介绍

jQuery 是一个 JavaScript 库。

jQuery 极大地简化了 JavaScript 编程。

jQuery 很容易学习。

1、下载jQuery

在官网进行下载

 2、配置jQuery

将jquery.js导入到HTML文件的script中:

<script src="jquery.js"></script>

二、jQuery选择器

工厂函数:

(1)在参数中使用标记名

        $("div"):用于获取文档中全部的<div>

(2)在参数中使用ID

        $("#username"):用于获取文档中ID属性值为username的一个属性

(3)在参数中使用CSS类名

       $(".btn"):用于获取文档中使用CSS类名位btn的所有元素

1、基本选择器

      (1)ID选择器:利用DOM元素的id属性来筛选匹配的元素,并以jQuery包装集的形式返回给对象。

         形式:$("#id")

         示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ID选择器</title>
</head>
<body>
<input type="text" id="test_input" name="test">
<input type="button" value="输入的值">
<script src="jquery.js"></script>
<script>
    $(document).ready(function () {
        $("input[type='button']").click(function () {
           var inputValue = $("#test_input").val(); //为按钮绑定单击事件
           alert(inputValue);   //获取文本输入框的值
        });
    })
</script>
</body>
</html>

运行结果:

(2)元素选择器:根据元素的标记名选择

形式:$("element");

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>元素选择器</title>
    <style>
        img{
            width: 500px;
            height: 300px;
        }
    </style>
</head>
<body>
<div><img src="chengxiao_01.jpg">程潇</div>
<div><img src="chengxiao_02.jpg">程潇</div>
<input type="button" value="确认">
<script src="jquery.js"></script>
<script>
    $(document).ready(function () {
        $("input[type='button']").click(function () {
            //获取第一个元素,eq()按顺序获取div元素
            $("div").eq(0).html("<img src='chengxiao_01.jpg'>超级可爱");
            //获取第二个元素,get()按顺序获取div元素
            $("div").get(1).innerHTML="<img src='chengxiao_02.jpg'>真的可爱";
        });
    });
</script>
</body>
</html>


运行结果:

按钮之前:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

按钮之后:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

eq()和get()是按照顺序获取元素,都是从0开始计数。

html()方法是jQuery的方法,innerHTML方法是DOM对象的方法。

$(document).ready()方法,当页面元素载入就绪时就会自动站执行程序,自动为按钮单击事件。

(3)类名选择器:以元素具有的CSS类名称查找匹配的元素

形式:$(".class")

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>类名选择器</title>
    <style>
        div{
            width: 300px;
            height: 200px;
            background-color: orange;
        }
    </style>
</head>
<body>
    <div class="myClass">程潇</div>
    <div >程潇哟</div>
    <script src="jquery.js"></script>
    <script>
        $(document).ready(function () { //选取DOM元素
            $(".myClass").css("background-color","yellow"); //设置背景颜色
            $(".myClass").css("color","blue");  //设置字体颜色
        });
    </script>
</body>
</html>
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

运行结果:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

        类名选择器可能获取一组jQuery包装集,因为多个元素可以拥有同一个CSS样式

(4)符合选择器:并不是匹配同时满足几个选择器条件的元素,而是将每个选择器匹配的元素合并后一起返回,只要满足其中任何一个筛选条件即可。

形式:$("selector1,selector2,selectorN")   #N表示多个选择器

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>复合选择器</title>
    <style>
        .default{
            background-color: yellow;
            color: red;
            width: 100px;
        }
        .change{
            background-color:greenyellow;
            color: red;
        }
    </style>
</head>
<body>
    <p class="default">p元素</p>
    <div class="default">div元素</div>
    <span class="default" id="span">span元素</span>
    <input type="button" value="为div和span元素进行换肤">
    <script src="jquery.js"></script>
    <script>
        $(document).ready(function () {
           $("input[type=button]").click(function () {
             $("div,#span").addClass("change"); //添加所使用的的CSS类
           });
        });
    </script>
</body>
</html>
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 运行结果:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

2、层级选择器

层级选择器:根据页面DOM元素之间的父子关系作为匹配的筛选条件。

(1)ancestor descendan选择器(祖--孙选择器:用于在给定的祖先元素下 匹配所有的后代元素)

形式:$("ancestor descendent");

参数说明:

       ①ancestor:任何有效的选择器

       ②descendant:用以2匹配元素的选择器,并且它是ancestor所指定元素的后代元素

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>祖孙选择器</title>
    <style type="text/css">
        #bottom{
            background-image:url(chengxiao_01.jpg);
            background-size: cover;
            width: 600px;
            height: 300px;
            clear: both;
            text-align: center;
            padding-top: 10px;
            font-size: 10pt;
        }
        .copyright{
            color: yellow;
            list-style: none;
            line-height: 20px;
        }
    </style>
</head>
<body>
    <div id="bottom">
        <ul>
            <li>程潇小可爱</li>
            <li>程潇大可爱</li>
        </ul>
    </div>
    <ul>
        <li>程潇小可爱</li>
        <li>程潇大可爱</li>
    </ul>
    <script src="jquery.js"></script>
    <script>
        $(document).ready(function () {
           $("div ul").addClass("copyright");
        });
    </script>
</body>
</html>
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

运行结果:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

(2)parent>child选择器(父子选择器--用于给定的父元素下匹配所有的直接的子元素)

         参数说明:

                ①parent元素:任何有效的选择器

                ②child元素: 用以匹配元素的选择器,它是匹配元素的选择器,并且是parent元素的直接子元素。

形式:$("parent>child")

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>父子选择器</title>
</head>
<body>
<form name="form">
    <input type="text" name="name">
    <button onclick="showInfo()">测试</button>
</form>
<script src="jquery.js"></script>
<script>
    function showInfo() {
        alert($("form>input").val());
    }
</script>
</body>
</html>
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

运行结果:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

(3)prev+next选择器:用于匹配所有紧接在prev元素后的next元素,prev和next是同级元素。

形式:$("prev+next")

参数说明:①prev:任何有效的选择器 ②next:一个有效选择器后面紧挨着的有效选择器。

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>前后元素</title>
    <style>
        .background{
            background: yellow;
        }
        body{
            font-size: 12px;
        }
    </style>
</head>
<body>
<div>
    <label>第一个元素label</label>
    <p>第一个p</p>
    <fieldset>
        <label>第二个label</label>
        <p>第二个p</p>
    </fieldset>
</div>
    <script src="jquery.js"></script>
    <script>
        $(document).ready(function () {
            $("label+p").addClass("background");
        });
    </script>
</body>
</html>
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

运行结果:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

(4)prev~siblings选择器:用于匹配prev元素之后的所有siblings元素,prev和siblings是相同的同辈元素

形式:$("prev~siblings");

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>同辈元素</title>
    <style>
        .background{
            background: yellow;
        }
        body{
            font-size: 20px;
        }
    </style>
</head>
<body>
<div>
    <p>第一个p</p>
    <p>第二个p</p>
</div>
<p>div外面的p元素</p>
<script src="jquery.js"></script>
<script>
    $(document).ready(function () {
        $("div~p").addClass("background");
    });
</script>
</body>
</html>
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

运行结果:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

3、过滤选择器

(1)简单过滤器:以冒号开头,用于实现简单过滤效果的过滤器

形式:$("element:change")

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>简单过滤器</title>
    <style>
        td{
            font-size: 12px;
            padding: 3px;
        }
        .th{
            background-color: red;
            font-weight: bold;
            text-align: center;
        }
        .even{
            background-color: blue;
        }
        .odd{
            background-color: orange;
        }

    </style>
</head>
<body>
    <table width="98%" border="0" align="center" cellpadding="1" bgcolor="yellow">
        <tr>
            <td width="11%" height="27px">学号</td>
            <td width="14%">姓名</td>
            <td width="12%">成绩</td>
            <td width="33%">家庭住址</td>
            <td width="30%">性别</td>
        </tr>
        <tr>
            <td height="27px">001</td>
            <td>李晓凡</td>
            <td>99</td>
            <td>山东日照</td>
            <td></td>
        </tr>
         <tr>
            <td height="27px">002</td>
            <td>崔月红</td>
            <td>98</td>
            <td>四川南充</td>
            <td></td>
        </tr>
         <tr>
            <td height="27px">003</td>
            <td>蔡春玲</td>
            <td>97</td>
            <td>四川广元</td>
            <td></td>
        </tr>
         <tr>
            <td height="27px">004</td>
            <td>柳博文</td>
            <td>96</td>
            <td>四川广安</td>
            <td></td>
        </tr>
    </table>
    <script src="jquery.js"></script>
    <script>
        $(document).ready(function () {
           $("tr:even").addClass("even");
           $("tr:odd").addClass("odd");
           $("tr:first").removeClass("even");
           $("tr:last").removeClass("odd");
        });
    </script>
</body>
</html>
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

运行结果:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

(2)内容过滤器:通过DOM元素包含的文本内容以及是否含有匹配的元素进行筛选。

内容过滤器包含:①:contains(text) ②:empty ③:has(selector) ④:parent

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>内容过滤器</title>
</head>
<body>
<table width="98%" border="0" align="center" cellpadding="1" bgcolor="yellow">
        <tr>
            <td width="11%" height="27px">学号</td>
            <td width="14%">姓名</td>
            <td width="12%">成绩</td>
            <td width="33%">家庭住址</td>
            <td width="30%">性别</td>
        </tr>
        <tr>
            <td height="27px">001</td>
            <td>李晓凡</td>
            <td></td>
            <td>山东日照</td>
            <td>男</td>
        </tr>
         <tr>
            <td height="27px">002</td>
            <td>崔月红</td>
            <td>98</td>
            <td>四川南充</td>
            <td>女</td>
        </tr>
         <tr>
            <td height="27px">003</td>
            <td>蔡春玲</td>
            <td></td>
            <td>四川广安</td>
            <td>女</td>
        </tr>
         <tr>
            <td height="27px">004</td>
            <td>柳博文</td>
            <td>96</td>
            <td>四川广安</td>
            <td>男</td>
        </tr>
    </table>
<script src="jquery.js"></script>
<script>
    $("td:parent").ready(function () {
       $("td:parent").css("background-color","yellow");
       $("td:empty").html("暂无内容");
       $("td:contains('四川广安')").css("color","red");
    });
</script>
</body>

</html>

运行结果:

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

(3)可见性过滤器:利用元素的可见状态匹配元素。

visible过滤器:匹配所有可见元素

hidden过滤器:匹配所有不可见元素(display:none;  input yupe:hidden;)

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>可见性过滤器</title>
</head>
<body>
    <input type="text" value="显示的input元素">
    <input type="text" value="隐藏的inpue元素" style="display: none">
    <input type="hidden" value="隐藏域">
    <script src="jquery.js"></script>
    <script>
         $(document).ready(function () {
           alert($("input:visible").val() + "\n\r" + $("input:hidden:eq(0)").val() +"\n\r" + $("input:hidden:eq(1)").val());
        });
    </script>
</body>
</html>

运行结果:

(4)表单对象的属性过滤器:通过表单元素的状态属性匹配元素,包括:

①checked过滤器 (匹配所有选中的被选中元素)

②:disabled过滤器(匹配所有不可用元素)

③:enabled过滤器(匹配所有可用元素)

④selected过滤器(匹配所有选中的option元素)

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性选择器</title>
</head>
<body>
    <form>
        <a>爱好</a>
        篮球:<input type="checkbox" checked value="篮球">
        足球:<input type="checkbox" checked value="足球">
        网球: <input type="checkbox" value="网球"><br>
        国籍:<input type="button" value="中国" disabled><br>
        城市:<select onchange="selectVal()">
                    <option value="北京">北京</option>
                    <option value="上海">上海</option>
                    <option value="广州">广州</option>
                    <option value="深圳">深圳</option>
              </select>
    </form>
    <script src="jquery.js"></script>
    <script>
        $(document).ready(function () {
           $("input:checked").css("background-color","yellow").val();
           $("input:disabled").val("我是不可用的");
        });
        function selectVal() {
            alert($("select option:selected").val());
        }
    </script>
</body>
</html>

运行结果:

4、属性选择器:通过元素的属性作为过滤条件进行筛选对象

5、表单选择器:匹配经常在表单中出现的元素,但是匹配的元素不一定在表单中。

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单选择器</title>
</head>
<body>
<form>
    复写框:<input type="checkbox">

</form>
<script src="jquery.js"></script>
<script>
    $(document).ready(function () {
       $(":checkbox").attr("checked","checked");
    });
</script>
</body>
</html>

运行结果

本期学习到此结束,欢迎各位关注指教。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值