JQuery:选择器

1. 常见选择器

(1) id选择器:$(’#id’)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>id选择器</title>
    <script type="text/javascript" src="../js/jquery.js"></script>
</head>
<body>
    <script type="text/javascript">
        /*
        * id选择器:#id
        * 同css类似
        * */
        $(function () {
            alert($('#name').length)//1
            //id不能重复,因此如果页面中有多个相同的id,那么jquery只会获取第一次出现的id作为jquery对象
            alert($('#name').val())//张三
        })
    </script>
    <input type="text" value="张三" id="name"/>
    <input type="text" value="李四" id="name"/>
</body>
</html>

(2) element和class选择器

格式:
element标签选择器:$(“p”) 所有 p元素

class选择器:$(".intro") 所有 class=“intro” 的元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>element和class选择器</title>
</head>
<body>
    <script type="text/javascript" src="../js/jquery.js"></script>
    <script type="text/javascript">
        $(function () {
            //element标签选择器:$("p") 所有 <p> 元素
            alert($("div").length);//3

            //class选择器:$(".intro") 所有 class="intro" 的元素
            alert($(".name").length)//2
            //获取出来的jquery是一个数组,如果直接使用jquery,那么jquery会把数组中第一个元素作为jquery的对象使用
            alert($(".name").val())//张时
            //如果想获取非第一个元素的对象,需要根据索引获取到指定元素位置的DOM对象后,再转换成jquery对象继续使用
           // alert($($(".name")[1]).val())//李飞
            //或者直接DOM-->value
            alert($(".name")[1].value)//李飞

        })
    </script>

    <div>123</div>
    <div>ni</div>
    <div></div>

    <input type="text" class="name" value="张时"/><br>
    <input type="text" class="name" value="李飞"/>
</body>
</html>

(3) parent > child选择器

格式:$(“div > .name”)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>parent > child选择器</title>
    <!--格式:$("div > .name")
        本例中被div包住的name,都是子类
    -->
</head>
<body>
    <script type="text/javascript" src="../js/jquery.js"></script>
    <script type="text/javascript">
        $(function () {
            alert($(".name").length)//获取所有class为name的元素 长度为3
            //div相当于父类,里面包含2个input节点相当于子类。
            alert($("div > .name").length)//获取div标签下所有class为name的元素 长度为2
            alert($("div > .name").val())//张三,默认为首元素
            alert($("div > .name")[1].value)//胡歌,第二个元素以DOM数组表示
        })
    </script>

    <div>
        <input type="text" class="name" value="张三"/>
        <input type="text" class="name" value="胡歌"/>
    </div>
        <input type="text" class="name" value="刘总"/>
</body>
</html>

(4) prev + next选择器

格式:$(“div + .name”)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>prev + next选择器</title>
    <!--格式:$("div + .name")
        本例中,紧邻</div>的元素:为</div>之后的class为name的元素
    -->
</head>
<body>
    <script type="text/javascript" src="../js/jquery.js"></script>
    <script type="text/javascript">
        $(function () {
            alert($("div + .name").length)//获取紧邻元素为div之后的class为name的元素 长度为1值为刘好
            alert($("div + .name").val())//刘好
        })
    </script>
    <div>
        <input type="text" class="name" value="刘明"/>
    </div>
    <input type="text" class="name" value="刘好"/>
    <input type="text" class="name" value="刘天"/>
</body>
</html>

(5) prev ~ siblings选择器

格式:$(“div ~ .name”)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>prev ~ siblings选择器</title>
    <!--格式:$("div ~ .name")
        本例中,在</div>标签后,所有带class为name的元素
    -->
</head>
<body>
    <script type="text/javascript" src="../js/jquery.js"></script>
    <script type="text/javascript">
        $(function () {
            alert($("div~.name").length)//获取div标签之后带class为name所有的元素 长度为2 值为 刘好和刘天
            alert($("div~.name").val())//刘好 首元素
            alert($("div~.name")[1].value)//刘天 第二个元素以数组DOM表示
        })
    </script>

    <input type="text" class="name" value="刘能"/>
    <div>
        <input type="text" class="name" value="刘明"/>
    </div>
    <input type="text" class="name" value="刘好"/>
    <input type="text" class="name" value="刘天"/>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--
        本例中,有几个</div>,那标签后所有带class为name的元素都包含
    -->
</head>
<body>
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript">
    $(function () {
        alert($("div~.name").length)//6,获取div标签之后带class为name所有的元素 长度为6 值为 刘好、刘天、<div>、王菲、鑫飞、刘明1
        alert($(".div~.name").length)//0,没有class为div的标签
        alert($("#div~.name").length)//1,id选择器为</div>的标签后带class为name所有的元素,刘明1
        //*,代表任何元素
        alert($("#div~ *").length)//3, id选择器为</div>的标签后的所有元素,刘明1、<span>、<div>
    })
</script>

<div>
    <input type="text" class="name" value="刘明"/>
</div>
<input type="text" class="name" value="刘好"/>
<input type="text" class="name" value="刘天"/>

<div class="name"><!--div也带class为name的元素,包含-->
    <input type="text" class="name" value="李浩"/>
</div>
<input type="text" class="name" value="王菲"/>
<input type="text" class="name" value="鑫飞"/>

<div id="div"></div>
<input type="text" class="name" value="刘明1"/>
<span></span>
<div></div>
</body>
</html>

2. 简单选择器

格式:$(“p:first”) 或 $(“ul li:gt(3)”)

  • (1)first(第一个)、last(最后一个)、odd(奇数)、even(偶数)
  • (2)eq(等于)、gt(大于)、lt(小于)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>简单选择器</title>
    <!--$("p:first")/$("ul li:gt(3)")
       (1)first(第一个)last(最后一个)odd(奇数)even(偶数)
       (2)eq(等于)gt(大于)lt(小于)
    -->
</head>
<body>
    <script type="text/javascript" src="../js/jquery.js"></script>
    <script type="text/javascript">
        $(function () {
            alert($("input:first").val());//000,第一个<input>元素
            alert($("input:last").val());//004,最后一个<input>元素
            alert($("input:odd").length);//2, 所有奇数元素 001和003,首元素以0开始
            alert($("input:even").length);//3, 所有偶数元素 000/002/004

            alert($("input:eq(1)").val())//001 等于下标1的是001
            alert($("input:gt(1)").length)//3 002、003、004 大于下标1的有3组
            alert($("input:lt(1)").length)//1 000 小于下标1的有1组
        })
    </script>

    <input type="text" value="000"><!--首元素的下标为0-->
    <input type="text" value="001">
    <input type="text" value="002">
    <input type="text" value="003">
    <input type="text" value="004">
</body>
</html>

3. 属性选择器

格式:就是带该属性名字的,都可以调用,为
[属性名字]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性选择器-attribute</title>
</head>
<body>
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript">
    $(function () {
        alert($("[value]").length)//4 获取所有的元素拥有value属性的元素
        alert($(".name[value]").length)//3 获取所有class为name并且拥有value属性的页面元素,同时满足class和value
        alert($("[jh]").length)//3 获取所有jh属性的元素
        alert($("[jh=aa]").length)//2 获取jh属性为aa的元素
    })
</script>

<div class="name">
    <input type="text" class="name" value="刘明" jh="aa"/>
</div>
    <input type="text" class="name" value="刘好" jh="aa"/>
    <input type="text" class="name" value="刘天" jh="we"/>
<!--这个value也可以-->
<a value="ji">连接</a>
<hr color=green>
</body>
</html>

发布了42 篇原创文章 · 获赞 8 · 访问量 2423

猜你喜欢

转载自blog.csdn.net/JH39456194/article/details/103978220