JQuery的选择器【二】

一、选择器的作用:
类似于CSS中选择器,在进行元素操作之前,要使用选择器选中元素。
如:document.getElementById("id") id选择器

二、jQuery常用的选择器有如下:
1. 基本选择器
2. 层级选择器
3. 属性选择器
4. 基本过滤选择器
5. 表单属性选择器

三.基本选择器
1. 选择器的语法:
1). ID选择器:  $("#ID")
2). 类选择器:  $(".类名")
3). 标签选择器:   $("标签名")

2. 示例:基本选择器的使用
<script type="text/javascript">
     // 1) 改变 id 为one的元素的背景色为红色
     $("#b1").click(function(){
         $("#one").css("background", "red");
     });
     
        // 2) 改变元素名为 <div> 的所有元素的背景色为 红色。
          $("#b2").click(function(){
              //jq中不少方法既可以操作一个对象,也可以操作一个集合,自动进行遍历
             $("div").css("background", "red");
         });
         
        // 3) 改变 class 为 mini 的所有元素的背景色为 红色
         $("#b3").click(function(){
             $(".mini").css("background", "red");
         });
         
        // 4)  改变所有的<span>元素和 id 为 two 的元素的背景色为红色,并集选择器
          $("#b4").click(function(){
             $("span,#two").css("background", "red");
         });
</script>


四.层级选择器
1. 语法:
1) 获得A元素内部的所有的B元素: $("A B")
说明:B元素是A元素的子孙标签
2) 获得A元素下面的所有B子元素:$("A>B")
说明:B元素只是A元素的子元素,不含孙元素
3) 获得A元素同级,下一个B元素:$("A+B")
说明:B元素是A元素的兄弟元素,如果A元素是排行老二,B元素排序老三
4) 获得A元素同级,所有后面B元素(多个元素):$("A~B")
说明:B元素是A元素后面的所有的兄弟元素,如果A元素是排行老二,B元素是老三,四...
5) 得到所有的兄弟: siblings() ,指定具体的标签:siblings("标签")

2. 示例:
//1) 改变 <body> 内所有 <div> 的背景色为红色
$("#b1").click(function(){
    $("body div").css("background", "red");
});

//2) 改变 <body> 内子 <div> 的背景色为 红色
$("#b2").click(function(){
            $("body>div").css("background", "red");
        });
        
//3) 改变 id 为 one 的下一个 <div> 的背景色为 红色
$("#b3").click(function(){
            $("#one+div").css("background", "red");
        });
        
//4) 改变 id 为 two 的元素后面的所有兄弟<div>的元素的背景色为 红色
  $("#b4").click(function(){
            $("#two~div").css("background", "red");
        });
        
//5) 改变 id 为 two 的元素所有 <div> 兄弟元素的背景色为红
  $("#b5").click(function(){
      //siblings() 表示所有的兄弟
            //$("#two").siblings().css("background","red");
            // 选择所有div的兄弟,无论前后
            $("#two").siblings("div").css("background","red");
        });

五.属性选择器
1. 语法:
1) 获得有属性名的元素: $("标签[属性名]")
2) 获得属性名 等于 值 元素: $("标签[属性名='属性值']")
3) 获得属性名 不等于 值 元素: $("标签[属性名!='属性值']")
4) 获得属性名 以 值  开头 元素: $("标签[属性名^='属性值']")
5) 获得属性名 以 值  结尾 元素: $("标签[属性名$='属性值']")
6) 获得属性名 含有 值 元素: $("标签[属性名*='属性值']")
7) 复合属性选择器,多个属性同时过滤:$("标签[属性名='属性值'][属性名='属性值'][属性名='属性值']")

2. 示例:
//1) 含有属性title 的div元素背景色为红色
$("#b1").click(function() {
    $("div[title]").css("background","red");
});

//2) 属性title值等于test的div元素背景色为红色
$("#b2").click(function() {
            $("div[title='test']").css("background","red");
        });
        
//3) 属性title值不等于test的div元素(没有title属性的也将被选中)背景色为红色
  $("#b3").click(function() {
            $("div[title!='test']").css("background","red");
        });
        
//4) 属性title值 以te开始 的div元素背景色为红色
$("#b4").click(function() {
            $("div[title^='te']").css("background","red");
        });
        
//5) 属性title值 以est结束 的div元素背景色为红色
$("#b5").click(function() {
            $("div[title$='est']").css("background","red");
        });
        
//6) 属性title值 含有es的div元素背景色为红色
$("#b6").click(function() {
            $("div[title*='es']").css("background","red");
        });
        
//7) 选取有属性id的div元素,然后在结果中选取属性title值含有“es”的 div 元素背景色为红色
$("#b7").click(function() {
            $("div[id][title*='es']").css("background","red");
        });


六.基本过滤选择器
1. 语法:
1) 获得选择的元素中的第一个元素
:first

2) 获得选择的元素中的最后一个元素
:last

3) 不包括指定内容的元素
:not(选择器)

4) 偶数,从 0 开始计数
:even

5) 奇数,从 0 开始计数
:odd

6) 指定第几个
:eq(n)   

7) 大于第n个,不含第index个
:gt(n)   --- greater than

8) 小于第n个,不含第index个
:lt(n)    --- less than

9) 获得标题所有标题元素 (<h1> /<h2> ....) 
:header

10) 获得正在执行动画的元素  
:animated

2. 示例:
    //向上滑动
        $("#mover").slideUp(5000);
    
//1) 改变第一个 div 元素的背景色为 红色,从0开始
$("#b1").click(function(){
    $("div:first").css("background","red");
});

//2) 改变最后一个 div 元素的背景色为 红色
$("#b2").click(function(){
            $("div:last").css("background","red");
        });
        
//3) 改变class不为 one 的所有 div 元素的背景色为 红色
$("#b3").click(function(){
            $("div:not(.one)").css("background","red");
        });
        
//4) 改变索引值为偶数的 div 元素的背景色为 红色,不会层级
  $("#b4").click(function(){
            $("div:even").css("background","red");
        });
        
//5) 改变索引值为奇数的 div 元素的背景色为 红色
  $("#b5").click(function(){
            $("div:odd").css("background","red");
        });
        
//6) 改变索引值为大于 3 的 div 元素的背景色为 红色
    $("#b6").click(function(){
            $("div:gt(3)").css("background","red");
        });
        
//7) 改变索引值为等于 3 的 div 元素的背景色为 红色
$("#b7").click(function(){
            $("div:eq(3)").css("background","red");
        });
        
//8) 改变索引值为小于 3 的 div 元素的背景色为 红色
$("#b8").click(function(){
            $("div:lt(3)").css("background","red");
        });
        
//9) 改变所有的标题元素的背景色为 红色
$("#b9").click(function(){
            $(":header").css("background","red");
        });
        
//10) 改变当前正在执行动画的所有元素的背景色为 红色
$("#b10").click(function(){
            $(":animated").css("background","red");
        });


七.表单属性选择器
1. 语法:
1) 可用: 
:enabled
2) 不可用: 
:disabled
3) 选中(单选radio ,多选checkbox):
:checked
4) 选择(下列列表 <select>中的<option>):
:selected

2. 示例:
//1) 利用 jQuery 对象的 val() 方法改变表单内可用 <input> 元素的值
$("#b1").click(function(){
    $("input[type='text']:enabled").val("我们是米虫");
});

//2) 利用 jQuery 对象的 val() 方法改变表单内不可用 <input> 元素的值
$("#b2").click(function(){
            $("input[type='text']:disabled").val("我们是米虫");
        });
        
//3) 利用 jQuery 对象的 length 属性获取多选框选中的个数,并且循环输出每个选中的元素值。
$("#b3").click(function(){
    var ck = $("input[name='items']:checked");
            alert(ck.length);
            for(var i=0; i<ck.length; i++) {
                //循环时数组中的每个元素都是JS对象
                alert(ck[i].value);
            }
        });
        
//4) 利用 jQuery 对象的 text() 方法或JS对象的innerHTML获取下拉框选中的option中的内容,并且循环输出每个文本。
        //text()相当于innerText
        $("#b4").click(function(){
            var op = $("option:selected");
            for(var i=0; i<op.length; i++) {
                   alert(op[i].innerHTML);
            }
        });
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值