jQuery学习笔记(二)jQuery选择器

版权声明:转载请注明原始链接 https://blog.csdn.net/sswqzx/article/details/82836477

1、基本选择器(重要)

$('标签名')	标签选择器
$('#id名')	id选择器
$('.class名')	 类选择器

演示:

html代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        div,span{
            width: 180px;
            height: 180px;
            margin: 20px;
            background: #9999CC;
            border: #000 1px solid;
            float:left;
            font-size: 17px;
            font-family:Roman;
        }
    </style>
</head>
<body style="zoom: 1;">
    <input type="button" value="改变 id 为 one 的元素的背景色为 红色" id="b1">
    <input type="button" value="改变元素名为 <div> 的所有元素的背景色为 红色" id="b2">
    <input type="button" value="改变 class 为 mini 的所有元素的背景色为 红色" id="b3">
    <input type="button" value="改变所有的<span>元素和 id 为 two 的元素的背景色为红色" id="b4">
    <div id="one">id为one</div>
    <div id="two" class="mini">
        id为two,class是 mini
    </div>
    <div class="one">
        class是 one
    </div>
    <div class="one">
        class是 one
    </div>
    <span class="one">class为one的span元素</span>
    <span class="mini">class为mini的span元素</span>
</body>
</html>

jQuery代码:

<script src="../js/jquery-3.3.1.min.js"></script>
<script>
    $(function () {
        // 1. 获取所有的 input 标签
        var inputs = $("input");

        // 2. id 选择器 (id为one的变成红色)
        inputs.eq(0).click(function () {
            $("#one").css("backgroundColor", "red");
        });

        // 3. div 标签选择器 (div标签变成红色)
        inputs.eq(1).click(function () {
            $("div").css("backgroundColor", "red");
        });

        // 4. class 类选择器 (类名为mini的变成红色)
        inputs.eq(2).click(function () {
            $(".mini").css("backgroundColor", "red");
        });

        // 5. span, #two 并集选择器
        inputs.eq(3).click(function () {
            $("span, #two").css("backgroundColor", "red");
        });
    });
</script>

2、层次选择器

$('A  B')	获得A元素内部的所有子元素B		
$('A > B')	获得A元素内部的第一层所有子元素B
$('A + B')	获得A元素同级下一个B元素		
$('A ~ B')	获得A元素后面的所有同级B元素	

演示:

html代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        div,span{
            width: 180px;
            height: 180px;
            margin: 20px;
            background: #9999CC;
            border: #000 1px solid;
            float:left;
            font-size: 17px;
            font-family:Roman;
        }
        div .mini{
            width: 50px;
            height: 50px;
            background: #CC66FF;
            border: #000 1px solid;
            font-size: 12px;
            font-family:Roman;
        }
        div .mini01{
            width: 50px;
            height: 50px;
            background: #CC66FF;
            border: #000 1px solid;
            font-size: 12px;
            font-family:Roman;
        }
    </style>
</head>
<body style="zoom: 1;">
<input type="button" value="改变 <body> 内所有 <div> 的背景色为红色" id="b1">
<input type="button" value="改变 <body> 内第一个子 <div> 的背景色为红色" id="b2">
<input type="button" value="改变 id 为 one 的下一个 <div> 的背景色为红色" id="b3">
<input type="button" value="改变 id 为 two 的元素后面的所有兄弟<div>的元素的背景色为 红色" id="b4">
<h1>有一种奇迹叫坚持</h1>
<h2>自信源于努力</h2>
<div id="one">id为one</div>
<div id="two" class="mini">
    id为two,class是 mini
    <div class="mini">class是 mini</div>
</div>
<div class="one">
    class是 one
    <div class="mini">class是 mini</div>
    <div class="mini">class是 mini</div>
</div>
<div class="one">
    class是 one
    <div class="mini01">class是 mini01</div>
    <div class="mini">class是 mini</div>
</div>
<span class="spanone">span</span>
</body>
</html>

jQuery代码:

<script src="../js/jquery-3.3.1.min.js"></script>
<script>
    $(function () {
        var inputs = $("input");

        // 改变 <body> 内所有 <div> 的背景色为红色 (后代选择器)
        inputs.eq(0).click(function () {
            $("body div").css("backgroundColor", "red");
        });

        // 改变 <body> 内第一个子 <div> 的背景色为红色 (直接后代)
        inputs.eq(1).click(function () {
            $("body > div").css("backgroundColor", "red");
        });

        // 改变 id 为 one 的下一个 <div> 的背景色为红色 (直接兄弟选择器)
        inputs.eq(2).click(function () {
            $("#one + div").css("backgroundColor", "red");
        });

        // 改变 id 为 two 的元素后面的所有兄弟 <div> 的元素背景色为红色 (所有兄弟选择器)
        inputs.eq(3).click(function () {
            $("#two ~ div").css("backgroundColor", "red");
        });
    });
</script>

3、属性选择器

$('A[属性名]')			获得有属性名的A元素
$('A[属性名=值]')		获得属性名 等于 值的A元素
$('A[属性名!=值]')		获得属性名 不等于 值的A元素
$('A[属性名^=值]')		获得属性名 以值开头 的A元素
$('A[属性名$=值]')		获得属性名 以值结尾 的A元素
$('A[属性名*=值]')		获得属性名 含有值 的A元素
$('A[属性名!=值][属性名^=值]')	复合属性选择器,多个属性同时过滤

演示:

html代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        div,span{
            width: 180px;
            height: 180px;
            margin: 20px;
            background: #9999CC;
            border: #000 1px solid;
            float:left;
            font-size: 17px;
            font-family:Roman;
        }
        div .mini{
            width: 50px;
            height: 50px;
            background: #CC66FF;
            border: #000 1px solid;
            font-size: 12px;
            font-family:Roman;
        }
        div .mini01{
            width: 50px;
            height: 50px;
            background: #CC66FF;
            border: #000 1px solid;
            font-size: 12px;
            font-family:Roman;
        }
    </style>
</head>
<body style="zoom: 1;">
<input type="button" value=" 含有属性title 的div元素背景色为红色" id="b1">
<input type="button" value=" 属性title值等于test的div元素背景色为红色" id="b2">
<input type="button" value=" 属性title值不等于test的div元素(没有属性title的也将被选中)背景色为红色" id="b3">
<input type="button" value=" 属性title值 以te开始 的div元素背景色为红色" id="b4">
<input type="button" value=" 属性title值 以est结束 的div元素背景色为红色" id="b5">
<input type="button" value="属性title值 含有es的div元素背景色为红色" id="b6">
<input type="button" value="选取有属性id的div元素,然后在结果中选取属性title值含有“es”的 div 元素背景色为红色" id="b7">
<div id="one">id为one的div</div>
<div id="two" class="mini" title="test">
    id为two,class是 mini的div,title="test"
    <div class="mini">class是 mini</div>
</div>
<div class="visible">
    class是 one
    <div class="mini">class是 mini</div>
    <div class="mini">class是 mini</div>
</div>
<div class="one" title="test02" id="">
    class是 one,title="test02"
    <div class="mini01">class是 mini01</div>
    <div class="mini" style="margin-top:0px;">class是 mini</div>
</div>
<div class="one" title="stte">123title='stte'</div>
</body>
</html>

jQuery代码:

<script src="../js/jquery-3.3.1.min.js"></script>
<script>
    $(function () {
        var inputs = $("input");

        // 含有属性 title 的 div 元素背景色为红色
        inputs.eq(0).click(function () {
            $("div[title]").css("backgroundColor", "red");
        });

        // 属性 title 值等于 test 的 div 元素背景色为红色
        inputs.eq(1).click(function () {
            $("div[title=test]").css("backgroundColor", "red");
        });

        // 属性 title 值不等于 test 的 div 元素 (没有属性title的也将被选中) 背景色为红色
        inputs.eq(2).click(function () {
            $("div[title!=test]").css("backgroundColor", "red");
        });

        // 属性 title 值以 te 开始的 div 元素背景色为红色
        inputs.eq(3).click(function () {
            $("div[title^=te]").css("backgroundColor", "red");
        });

        // 属性 title 值以 est 结尾的 div 元素背景色为红色
        inputs.eq(4).click(function () {
            $("div[title$=est]").css("backgroundColor", "red");
        });

        // 属性 title 值含有 es 的 div 元素背景色为红色
        inputs.eq(5).click(function () {
            $("div[title*=es]").css("backgroundColor", "red");
        });

        // 选取有属性 id 的 div 元素, 然后在结果中选取属性 title 值含有 es 的 div 元素背景色为红色
        inputs.eq(6).click(function () {
            $("div[id][title*=es]").css("backgroundColor", "red");
        });
    });
</script>

4、基本过滤选择器

$('A:first')			过滤出第一个 
$('A:last')			过滤出最后一个
$('A:not(选择器)')	排除指定的元素
$('A:eq()')			按索引值过滤     
$('A:gt()')			过滤大于指定索引值  从0开始   greater then
$('A:lt()')			过滤小于指定索引值				less then
$('A:even')			过滤索引值为偶数  从0开始   
$('A:odd')			过滤索引值为奇数
$(':header')		过滤所有的标题标签	h1-h6
$(':animated')		过滤正在执行动画的标签对象

演示:

html代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        div,span{
            width: 180px;
            height: 180px;
            margin: 20px;
            background: #9999CC;
            border: #000 1px solid;
            float:left;
            font-size: 17px;
            font-family:Roman;
        }
    </style>
</head>
<body style="zoom: 1;">
<input type="button" value=" 改变第一个 div 元素的背景色为 红色" id="b1">
<input type="button" value=" 改变最后一个 div 元素的背景色为 红色" id="b2">
<input type="button" value=" 改变class不为 one 的所有 div 元素的背景色为 红色" id="b3">
<input type="button" value=" 改变索引值为偶数的 div 元素的背景色为 红色" id="b4">
<input type="button" value=" 改变索引值为奇数的 div 元素的背景色为 红色" id="b5">
<input type="button" value=" 改变索引值为大于 3 的 div 元素的背景色为 红色" id="b6">
<input type="button" value=" 改变索引值为等于 3 的 div 元素的背景色为 红色" id="b7">
<input type="button" value=" 改变索引值为小于 3 的 div 元素的背景色为 红色" id="b8">
<input type="button" value=" 改变所有的标题元素的背景色为 红色" id="b9">
<input type="button" value=" 改变当前正在执行动画的所有元素的背景色为 红色" id="b10">
<h1>有一种奇迹叫坚持</h1>
<h2>自信源于努力</h2>
<h3>自信源于努力</h3>
<div id="one">id为one</div>
<div id="two" class="mini">
    id为two   class是 mini
</div>
<div class="one">
    class是 one
</div>
<div class="one">
    class是 one
</div>
<div id="mover" style="display: block; overflow: hidden; height: 179.995px; padding-top: 0px; 
margin-top: 19.9995px; padding-bottom: 0px; margin-bottom: 19.9995px;">动画</div>
</body>
</html>

JQuery代码:

<script src="../js/jquery-3.3.1.min.js"></script>
<script>
    $(function () {
        var inputs = $("input");
        // 改变第一个 div 元素的背景色为红色
        inputs.eq(0).click(function () {
            $("div:first").css("backgroundColor", "red");
        });

        // 改变最后一个 div 元素的背景色为红色
        inputs.eq(1).click(function () {
            $("div:last").css("backgroundColor", "red");
        });

        // 改变 class 不为 one 的所有 div 元素的背景色为红色
        inputs.eq(2).click(function () {
            $("div:not(.one)").css("backgroundColor", "red");
        });

        // 改变索引值为偶数的 div 元素的背景色为红色
        inputs.eq(3).click(function () {
            $("div:even").css("backgroundColor", "red");
        });

        // 改变索引值为奇数 的 div 元素的背景色为红色
        inputs.eq(4).click(function () {
            $("div:odd").css("backgroundColor", "red");
        });

        // 改变索引值大于3的 div 元素背景色为红色
        inputs.eq(5).click(function () {
            $("div:gt(3)").css("backgroundColor", "red");
        });

        // 改变索引值等于3的 div 元素的背景色为红色
        inputs.eq(6).click(function () {
            $("div:eq(3)").css("backgroundColor", "red");
        });

        // 改变索引值小于3的 div 元素背景色为红色
        inputs.eq(7).click(function () {
            $("div:lt(3)").css("backgroundColor", "red");
        });

        // 改变所有的标题元素的背景为红色
        inputs.eq(8).click(function () {
            $(":header").css("backgroundColor", "red");
        });

        // 改变当前正在执行动画的所有元素的背景色为红色
        inputs.eq(9).click(function () {
            $(":animated").css("backgroundColor", "red");
        });

        // 使用id为 mover 的 div 运行
        function move() {
            $("#mover").slideToggle("slow", function() {
                // 回调函数
                move();
            })
        }
        move();
    });
</script>

5、表单属性选 择器

$(':enabled')		选择可用的input标签
$(':disabled')		选择不可用的input标签		
$(':checked')		选择选中的radio或者checkbox
$(':selected')		选择选中的<select>

演示:

html代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <input type="button" id="b1" value="获取可用的<input type='text'/>标签的长度">
    <input type="button" id="b2" value="获取不可用的<input type='text'/>标签的长度">
    <input type="button" id="b3" value="获取选中的input标签的长度">
    <input type="button" id="b4" value="获取选中的option标签的长度">
    <br>
    <br>
    <input type="text" value="不可用" disabled="disabled">
    <input type="text" value="可用">
    <input type="text" value="不可用" disabled="disabled">
    <input type="text" value="不可用" disabled="disabled">
    <input type="text" value="可用">
    <br>
    <br>
    <input type="radio" name="sex" checked="checked">男
    <input type="radio" name="sex">女
    <input type="radio" name="sex">嘿嘿嘿
    <br>
    <br>
    <input type="checkbox">篮球
    <input type="checkbox" checked="checked">足球
    <input type="checkbox" checked="checked">羽毛球
    <br>
    <br>
    <select name="">
        <option value="">上海市</option>
        <option value="" selected="selected">北京市</option>
        <option value="">广州市</option>
    </select>
    <select name="">
        <option value="">深圳市</option>
        <option value="" selected="selected">杭州市</option>
        <option value="">郑州市</option>
    </select>
</body>
</html>

jQuery代码:

<script src="../js/jquery-3.3.1.min.js"></script>
<script>
    $(function () {
        var inputs = $("input");

        // 获取可用的 <input type="text" /> 标签的长度
        inputs.eq(0).click(function () {
            var length = $("input[type=text]:enabled").length;
            alert("length = " + length);
        });

        // 获取不可用的 <input type="text" /> 标签的长度
        inputs.eq(1).click(function () {
            var length = $("input[type=text]:disabled").length;
            alert("length = " + length);
        });

        // 获取选中的 input 标签的长度   (radio, checkbox)
        inputs.eq(2).click(function () {
            var length = $("input:checked").length;
            alert("length = " + length);
        });

        // 获取选中的 option 标签的长度
        inputs.eq(3).click(function () {
            var length = $("option:selected").length;
            alert("length = " + length);
        });
    });
</script>

6、筛选选择器

jq对象.parent()		当前元素的亲生父级元素
jq对象.parents()		当前元素的所有父级元素
jq对象.siblings()		最牛的筛选选择器,可以选出除了自己以外的所有同级元素
jq对象.children()		当前元素的第一层子元素
jq对象.find()			当前元素的指定子级元素

演示:

html代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        *{
            padding: 0;
            margin: 0;
            list-style: none;
        }
        div{
            width: 200px;
            height: 200px;
            border: 2px solid #000;
        }
        .box1 div{
            margin: 100px 0 0 100px;
        }
        li{
            width: 50px;
            height: 50px;
            line-height: 50px;
            text-align: center;
            border-radius: 50%;
            border: 1px solid #000;
            float: left;
            margin: 300px 10px;
        }
    </style>
</head>
<body>
<input type="button" id="b1" value="选择box3的亲生父亲变色">
<input type="button" id="b2" value="选择box3的所有父亲变色">
<input type="button" id="b3" value="选择lis的所有兄弟变色">
<input type="button" id="b4" value="选择box1的亲生儿子变色">
<input type="button" id="b5" value="选择box1里面的box3变色">
<div class="box1">爷爷
    <div class="box2">父亲
        <div class="box3">孙子</div>
    </div>
</div>
<ul>
    <li>1</li>
    <li class="lis">2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
</body>
</html>

jQuery代码:

<script src="../js/jquery-3.3.1.min.js"></script>
<script>
    $(function () {
        var inputs = $("input");

        // 选择 box3 的亲生父亲变色
        inputs.eq(0).click(function () {
            $(".box3").parent().css("backgroundColor", "red");
        });

        // 选择 box3 的所有父亲变色
        inputs.eq(1).click(function () {
            $(".box3").parents().css("backgroundColor", "red");
        });

        // 选择 lis 的所有兄弟变色
        inputs.eq(2).click(function () {
            $(".lis").siblings().css("backgroundColor", "red");
        });

        // 选择 box1 的亲生儿子变色
        inputs.eq(3).click(function () {
            $(".box1").children().css("backgroundColor", "red");
        });

        // 选择 box1 里面的 box3 变色
        inputs.eq(4).click(function () {
            $(".box1").find(".box3").css("backgroundColor", "red");
        });
    });
</script>

猜你喜欢

转载自blog.csdn.net/sswqzx/article/details/82836477