jQuery 01: 常用选择器

2年前 (2022) 程序员胖胖胖虎阿
216 0 0

jQuery

概述

  1. js的类库,开源,轻量便捷
  2. 引入jQuery,官网下载,开发用未压缩版,上线用压缩版

入口函数及其简写

  1. 标准写法

    $(document).ready(function(){
        //执行代码
    })
    
  2. 简写

    $(function(){
        //执行代码
    })
    

dom对象和jQuery对象

  1. dom对象:传统js语法创建出的对象

  2. jQuery对象:jQuery语法创建出的对象

    //jQuery对象以数组的形式存储,因为某些选择器选择的结果不唯一,为了兼容这种情况,都用数组存储
    $("#btn1")
    $(".txt")
    
  3. 两类对象可以相互转换

    1. dom -> jdom:$(dom)

    2. jsom -> dom:从数组中获取第一个对象,第一个对象,就是dom对象,[0]或者get(0)

    3. 为什么要相互转换?

      1. 为了使用对应类型对象的相应方法
    4. 示例

      <!DOCTYPE html>
      <html lang="en">
          <head>
              <title>dom对象转换成jdom</title>
              <meta charset="UTF-8">
          </head>
          <body>
          <script src="js/jquery-3.6.0.js"></script>
          <script>
              $(function(){
                  $("#btn").click(function(){
                      alert($("#btn").val())
                  })
              })
          </script>
          <input type="button" value="just a button" id="btn">
          </body>
      </html>
      
      <!DOCTYPE html>
      <html lang="en">
          <head>
              <title>jdom对象转换成dom对象</title>
              <meta charset="UTF-8">
          </head>
          <body>
          <script src="js/jquery-3.6.0.js"></script>
          <script>
              $(function(){
                  //dom -> jdom
                  $("#btn").click(function(){
                      //jdom -> dom
                      alert($("#btn")[0].value)
                      //alert("btn").get(0).value)
                  })
              })
          </script>
          <input type="button" value="jdom to dom" id="btn">
          </body>
      </html>
      

jQuery选择器

  1. 本质:一个字符串,用来定位dom对象,然后通过jQuery的函数来操作dom对象,最后用dom对象的原生函数和属性,让这些操作真实生效

基本选择器

id选择器

  1. 语法:$("#dom对象id")

class选择器

  1. 语法:$(".class样式名")

标签选择器

  1. 语法:$("标签名称")

示例:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>基本选择器</title>
        <meta charset="UTF-8">
        <style>
            *{
                margin: 0;
                padding: 0;
                box-sizing: border-box;
                margin-left: 10px;
                margin-bottom: 10px;
            }

            #div1{
                width: 300px;
                height: 100px;
                background-color: gray;
                margin-top: 10px;
            }

            .two{
                width: 300px;
                height: 100px;
                background-color: gray;
            }
        </style>
    </head>
    <body>
    <script src="js/jquery-3.6.0.js"></script>
    <script>
        $(function(){
            $("#btn1").click(function(){
                //id选择器
                $("#div1").css("background", "red")
            })

            $("#btn2").click(function(){
                //class样式选择器
                $(".two").css("background", "green")
            })

            $("#btn3").click(function(){
                //标签选择器
                $("span").css("background", "blue")
                //操作数组中的全部成员
            })
        })
    </script>
    <div id="div1">id图层</div>
    <div class="two">样式图层1</div>
    <div class="two">样式图层2</div>
    <span>span标签</span><br><br>
    <input type="button" value="修改id图层" id="btn1">
    <input type="button" value="修改样式图层" id="btn2">
    <input type="button" value="修改标签" id="btn3">
    </body>
</html>

效果:

jQuery 01: 常用选择器

所有选择器

  1. 语法:$("*")

组合选择器

  1. 语法:$("#id, .class, 标签名")

表单选择器

  1. 语法:$(":type 属性值")

    例如:$(":text") $(":password")等

  2. 与是否有form标签无关,使用input标签的type属性值来定位dom对象

示例:

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>表单选择器</title>
        <meta charset="UTF-8">
    </head>
    <body>
    <script src="js/jquery-3.6.0.js"></script>
    <script>
        $(function(){
            //获取文本框的值
            $("#btn1").click(function(){
                alert($(":text")[0].value)
            })

            //获取单选按钮的值
            $("#btn2").click(function(){
                for(var i = 0; i < $(":radio").length; i++){
                    alert($(":radio")[i].value)
                }
            })

            //获取复选框的值
            $("#btn3").click(function(){
                for(var i = 0; i < $(":checkbox").length; i++){
                    //使用jQUery的val()
                    alert($($(":checkbox")[i]).val())
                }
            })
        })
    </script>
    <input type="text" value="文本框的值"><br>
    <input type="radio" value="1" name="sex">男<br>
    <input type="radio" value="0" name="sex">女<br>
    <input type="checkbox" value="linux" name="IT">linux
    <input type="checkbox" value="java" name="IT">java
    <input type="checkbox" value="web" name="IT">web<br>
    <input type="button" id="btn1" value="获取文本框里的值">
    <input type="button" id="btn2" value="获取单选按钮的值">
    <input type="button" id="btn3" value="获取复选框的值">
    </body>
</html>

过滤器

  1. 作用:选择器作用后,对已经定位的dom对象,根据条件进一步筛选,从dom数组中筛选出需要操作的对象

  2. 本质:一个字符串

  3. 出现背景:

<div>1</div>
<div>2</div>
<div>3</div>

<script>
    $("div")
</script>
<!--
此时 $("div") == [dom1, dom2, dom3]
dom数组中元素的顺序,与上面图层标签出现的顺序相同
过滤器的作用:在选择器作用之后,对选择得到的结果进一步过滤,选择目标dom元素
-->

基本过滤器

  1. 作用:根据位置进行过滤

  2. 语法:

    $("选择器:first")			//保留数组中第一个dom
    $("选择器:last")			//保留数组中最后一个dom
    $("选择器:eq(数组索引)")	 //保留数组下标为指定索引的dom对象
    $("选择器:lt(数组索引)")	 //保留数组下标<指定索引的所有dom对象
    $("选择器:gt(数组索引)")	 //保留数组下标>指定索引的所有dom对象
    
  3. 示例:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <title>基本过滤器</title>
            <meta charset="UTF-8">
            <style>
                *{
                    margin: 0;
                    padding: 0;
                    box-sizing: border-box;
                }
    
                body{
                    background-color: bisque;
                }
    
                div{
                    background-color: gray;
                    width: 300px;
                }
            </style>
        </head>
        <body>
        <script src="js/jquery-3.6.0.js"></script>
        <script>
            $(function(){
                //选择第一个图层
                $("#btn1").click(function(){
                    $("div:first").css("background", "red")
                })
                //选择最后一个图层
                $("#btn2").click(function(){
                    $("div:last").css("background", "green")
                })
                //选择数组下标等于3的图层
                $("#btn3").click(function(){
                    $("div:eq(3)").css("background", "blue")
                })
                //选择数组下标小于3的图层
                $("#btn4").click(function(){
                    $("div:lt(3)").css("background", "pink")
                })
                //选择数组下标大于3的图层
                $("#btn5").click(function(){
                    $("div:gt(3)").css("background", "purple")
                })
                //选择数组下标等于1的图层
                $("#btn6").click(function(){
                    $("div:eq(1)").css("background", "yellow")
                })
            })
        </script>
        <div id="div1">图层0</div>
        <div id="div2">图层1
            <div id="div3">图层2</div>
            <div id="div4">图层3</div>
        </div>
        <div id="div5">图层4</div>
        <input type="button" id="btn1" value="选择第一个图层"><br>
        <input type="button" id="btn2" value="选择最后一个图层"><br>
        <!--
    	父级dom与子级dom,在dom数组中独立存在
    	-->
        <input type="button" id="btn6" value="选择下标等于1的图层"><br>
        <input type="button" id="btn3" value="选择下标等于3的图层"><br>
        <input type="button" id="btn4" value="选择下标小于3的图层"><br>
        <input type="button" id="btn5" value="选择下标大于3的图层"><br>
        </body>
    </html>
    

    效果:

    jQuery 01: 常用选择器

表单属性过滤器

  1. 根据表单中dom对象的状态情况,来定位dom对象,例如:是否启用,是否选中等等

  2. 语法

    $(":text:enabled")	//所有可用的文本框
    $(":text:disabled")	//所有不可用的文本框
    $(":check:checked")	//复选框中选择的元素
    选择器>option:selected	//选择指定下拉列表的被选中的元素
    
  3. 示例:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <title>表单属性过滤器</title>
            <meta charset="UTF-8">
        </head>
        <body>
        <script src="js/jquery-3.6.0.js"></script>
        <script>
            $(function(){
                //所有可用text,设值为 hello jQuery
                $("#btn1").click(function(){
                    for(var i = 0; i < $(":text:enabled").length; i++){
                        $(":text:enabled")[i].value = "hello jQuery"
                    }
                })
    
                //显示被选中的复选框的值
                $("#btn2").click(function(){
                    for(var i = 0; i < $(":checkbox:checked").length; i++){
                        alert($(":checkbox:checked")[i].value)
                    }
                })
    
                //显示下拉列表选中的值
                $("#btn3").click(function(){
                    alert("下拉列表值: " + $("select>option:selected").val())
                })
            })
        </script>
    
        <input type="text" id="txt1" value="text1"><br>
        <input type="text" id="txt2" value="text2" disabled><br>
        <input type="text" id="txt3" value="text3"><br>
        <input type="text" id="txt4" value="text4" disabled><br><br>
    
        <input type="checkbox" id="check1" name="IT" value="linux" checked>linux
        <input type="checkbox" id="check2" name="IT" value="web">web
        <input type="checkbox" id="check2" name="IT" value="mysql">mysql<br><br>
    
        <select id="language">
            <option value="java" selected>java</option>
            <option value="php">php</option>
            <option value="ruby">ruby</option>
            <option value="c">c</option>
        </select><br><br>
    
        <input type="button" id="btn1" value="所有可用text, 设值为 hello jQuery"><br> 
        <input type="button" id="btn2" value="显示被选中的复选框的值"><br>
        <input type="button" id="btn3" value="显示下拉列表选中的值"> 
        </body>
    </html>
    
版权声明:程序员胖胖胖虎阿 发表于 2022年10月12日 上午3:40。
转载请注明:jQuery 01: 常用选择器 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...