jquery

目录

jquery引入

dom对象和jquery对象

 基础元素选择器

 层次选择器

表单选择器 

 操作元素的属性

 操作元素的样式属性

 操作元素的内容

 创建元素和添加元素

ready加载事件

绑定事件


jquery引入

<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>

引入失败:

会报这个错

dom对象和jquery对象

通过js获得到的对象就是dom对象·(document)
通过jquery获得的对象就是jquery包装集对象,简称jquery对象

jquery获取的是一个集合,dom对象是该标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="hello">文本对象</div>
</body>
</html>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script>
    //dom 获取对象   返回该标签
    var hello_dom=document.getElementById("hello");
    //dom 获取一大串对象  因为这个标签中有很多其他标签,所以返回一个数组
    var page=document.getElementsByTagName("html");
     // 当获取不存在的对象时,dom返回的是null
     var hello_dom2=document.getElementById("html");
    console.log(hello_dom);
    console.log(page);
    console.log(hello_dom2);
    console.log("----------------------------------------");
    // jquuery获取对象,是一个集合
    var hello_jquery=$("#hello");
    // jquery当获取不存在的对象,jquery返回的是一个空的集合
    var page=$("#html");
    console.log(hello_jquery);
    console.log(page);
    console.log("-------------------将dom转换为jqery对象------------------");
    var domtojquery=$(hello_dom);
    console.log(domtojquery);
    console.log("--------------------将jquery对象转为dom对象--------------------");
    var jquerytodom=hello_jquery[0];
    console.log(jquerytodom);
</script>

 基础元素选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="div1" class="div1"> div1</div>
    <div id="div2" class="div2"> div2</div>
</body>
</html>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script>
        //id选择器
        var div1=$("#div1");
        console.log(div1);
        // class选择器
        var div2=$(".div1");
        console.log(div2);
        // 元素选择器
        var div3=$("div");
        console.log(div3);
        // 选择全部元素
        var div_all=$("*");
        console.log(div_all);
</script>

 层次选择器

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="father" id="father0">father0</div>
    <div class="father" id="father">
        father
        <div class="son" id="son">son
            <span></span>
            <div class="sonson">sonson <span></span></div>
        </div>
    </div>
    <div class="father" id="father2">father2</div>
    <div class="father" id="father3">father3</div>
</body>

</html>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script>
           //   后代选择器 选择父元素的所有是div的子元素(不管儿子,孙子,重孙子)
           var hd=$("#father div"); //有一个儿子,一个孙子,会找到两个
           console.log(hd);

           //   子代选择器  选择父元素所有是div的儿子元素(只有儿子)
           var zd=$("#father>div"); //有一个儿子找到一个
           console.log(zd);


           
            //    相邻选择器  选择元素的是div的下一个同级元素 
            var xl=$("#father+div"); //可以找到
            console.log(xl);

             //    同辈选择器  选择元素的是div的同级元素 
             var xl=$("#father ~ div"); //可以找到两个div,注意,代码从上向下执行,father0是找不到的
            console.log(xl);
</script>

表单选择器 

<form action="" οnsubmit="return check()" class="container">

        <span>用户名:</span>
        <input type="text" class="com" />
        <span>昵称:</span>
        <input type="text" class="com" />
<input type="submit" value="提交">
<input type="reset" value="重置">
<button></button>
</form>
</body>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script>
    //:input   获取所有的表单元素(行内元素不算),总共有5个,用户名  昵称,提交按钮 ,重置按钮,button按钮
     var inputs=$(":input");
     console.log(inputs);
    //  input   只打印和input有关的,就是4个
      var inputs2=$("input");
      console.log(inputs2);
</script>

 操作元素的属性

总结:prop一般用于设置boolean属性,其他的属性都由attr()来设置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="checkbox" name="zyk" checked="checked" id="a" abc="abc">aa
    <input type="checkbox" name="zyk" id="b">bb
</body>
</html>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script>
    // 固有属性 元素本身就有的属性  id name  class style
    // 返回值是boolen的属性   checked  selected disabled
    //  自定义属性:用户自己定义的属性

    // attr()和prop()的区别
    // 1.如果是固有属性,没有区别
    // 2.如果是自定义属性,attr()可以操作,Prop()不可操作
    // 3.如果返回值是boolean类型的属性
    //   如果设置了属性,attr()返回具体的值,prop()返回true
    //   如果没有设置该属性,attr()返回undefined,prop()返回false
  
    // 总结:prop一般用于设置boolean属性,其他的属性都由attr()来设置
    // 1.获取属性 
    // attr("属性名")    prop("属性名");
    var name =$('#a').attr("name");
    console.log(name);
    var name2 =$('#a').prop("name");
    console.log(name2);

    // 2.attr设置属性
    $('#a').attr("name","zyk2222");
    var name_afterchange =$('#a').attr("name");
    console.log("attr设置name属性"+name_afterchange);
    // prop设置属性
    $('#a').prop("name","zyk3333");
    var name_afterchange =$('#a').prop("name");
    console.log("attr设置name属性"+name_afterchange);
      
    // 3.attr移除name属性
    $("#a").removeAttr("name");
    // prop不能用于移除属性
    // $("#b").removeProp("name");

    // attr()可以操作自定义属性
    var abc =$('#a').attr("abc");
    console.log("attr获取自定义属性"+abc);
    $("#a").attr("abc","bcd");
    var abc =$('#a').attr("abc");
    console.log("attr设置自定义属性"+abc);
    // prop()不可以用于操作自定义属性
    var abc =$('#a').prop("abc");
    console.log("prop不可以用于操作自定义属性"+abc);

    // 3.如果返回值是boolean类型的属性
    //   如果设置了属性,attr()返回具体的值,prop()返回true
    //   如果没有设置该属性,attr()返回undefined,prop()返回false
</script>

 操作元素的样式属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .css1{
            background-color: red;
            height: 200px;
            width: 200px;
        }
        .css2{
            background-color: green;
            height: 200px;
            width: 200px;
        }
        .fonts{
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <div id="div1" class="css1">div1</div>
    <div id="div2" class="css2">div2</div>
</body>
</html>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script>
        //获取元素的class名 
        var div1=$("#div1").attr("class");
        console.log(div1);

        // 修改元素的class名
        $("#div1").attr("class","css2");
        var div2=$("#div1").attr("class");
        console.log(div2);

        // 给元素添加样式类  如果有冲突,以后设置的为准
        $("#div1").addClass("fonts");
        var div1=$("#div1").attr("class");
        console.log(div1);
        // 给元素添加行内样式
        $("#div1").css("background-color","red");
        var div1=document.getElementById("div1");
        console.log(div1);
        // 给元素添多个行内样式
        $("#div1").css({"background-color":"pink","line-height":"500px"});
        var div1=document.getElementById("div1");
        console.log(div1);
        
        // 移除样式
        $("#div1").removeClass("css2");
</script>

 操作元素的内容


表单元素(在页面上可以操作的,值需要用户输入)

 <input type="text" value="123" id ="text">    获得输入框中的值,即value
文本框text  密码框password   单选框radio  复选框 checkbox 隐藏域 hidden 文本域textarea


非表单元素 (在两个括号中间写值的) div  p span h1-h6 

<div id="hello">123456</div>  获得它的值,就是获得123456

<!DOCTYPE html>
<html lang="en">
<!-- 操作元素的内容 -->
<!-- 表单元素(在页面上可以操作的)
文本框text  密码框password   单选框radio  复选框 checkbox 隐藏域 hidden 文本域textarea -->
<!-- 非表单元素  div  p span h1-h6 -->
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="div1">div1div1div1</div>
    <input type="text" id="text1" value="text">
</body>
</html>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script>
// 表单元素
    //html            获得元素的值  包含html标签 (非表单元素) 
    var div1 = $("#div1").html();
    console.log(div1);
    //html("内容")   设置元素的值,包含html标签()
    $("#div1").html('div2222');
    var div1 = $("#div1").html();
    console.log(div1);
// 非表单元素
// val()           获取元素的值(表单元素) 
    var text1= $("#text1").val();
    console.log(text1);
// val('值')       设置元素的值(表单元素)
    $("#text1").val("text2");
    var text1= $("#text1").val();
    console.log(text1);
</script>

 创建元素和添加元素

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #div1 {
            width: 200px;
            height: 200px;
            border: 1px solid red;
        }

        #div2 {
            width: 200px;
            height: 200px;
            border: 1px solid green;
        }

        #div3 {
            width: 20px;
            height: 20px;
            border: 1px solid black;
        }
    </style>
</head>

<body>
    <div id="div1"> </div>
    <div id="div2"> </div>
    <div id="div3"></div>
</body>

</html>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script>
    //  在指定元素的内部的最前面添加子元素     可以是字符串/html标签/jquery对象   
    // 注意虽然是允许字符串和html标签,但是要用$()把他们转为jquery对象,如下
    // prepend()     和prependTo只是方式不同,其他一致       指定元素.prepend(内容);
    var p1 = "<p>p1p1p1</p>";
    $("#div1").prepend($(p1));
    //preparedto()    和prepend只是方式不同,其他一致   内容.prependTo(指定元素);
    var p2 = "<p>p2p2p2</p>";
    $(p2).prependTo($("#div1"));


    //  在指定元素的内部的最后面添加子元素     可以是字符串/html标签/jquery对象   
    // 注意虽然是允许字符串和html标签,但是要用$()把他们转为jquery对象,如下
    // append()     和appendTo只是方式不同,其他一致       指定元素.append(内容);
    var p3 = "<p>p3p3p3</p>";
    $("#div2").append($(p3));
    //appendTo()     和append只是方式不同,其他一致          内容.appendTo(指定元素);
    var p4 = "<p>p4p4p4</p>";
    $(p4).appendTo($("#div2"));


    // before在指定元素前追加同级元素
    $("#div2").before("<h1>在div2 前添加同级元素<h1>");
    // after在指定元素后追加统计元素
    $("#div2").after("<h1>在div2 后添加同级元素<h1>");

    // 如果要添加的元素已经存在,则相当于是剪切,把该元素从原来的位置拿走,放在要插入的位置(上面六个方法全都是这样)
    $("#div2").append($("#div3"));
</script>

ready加载事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1 id="h1">h1</h1>
</body>
</html>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script>
    // 在dom执行完时加载事件 相当于的 js的 window.onload()

    $(document).ready(function(){
     console.log($("#h1"));
    });
    // 这是简写,两种方法都可以,谁在前边先执行谁
    $(function(){
        console.log($("#h1").html());
    });
</script>

绑定事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p id="p1">点我输出一句话</p>
    <button id="button1">点击一下之后禁用该按钮</button>
    <hr>
    <button id="button2">button2</button>
    <button id="button3">button3</button>
    <button id="button4">button4</button>
    <button id="button5">button5</button>
</body>
</html>
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script>
    // bind绑定事件
    $("#p1").bind("click",function(){
      console.log("世上无难事,只怕有心人");
    });
    // 直接绑定
    $("#button1").click(
        function(){
            console.log("按钮已经被禁用");
            // $("#button1").attr("disabled","true"); 
            console.log("this是dom对象,要使用必须先转为jquery对象");
            $(this).attr("disabled","true");
        }
    );
    // 给一个元素的多个事件绑定同一个函数
    $("#button2").bind("click mouseover",function(){
        console.log("button2 被点击或者鼠标划过按钮2");
    });
    // 给一个元素的不同事件绑定不同的函数
    $("#button3").bind("click",function(){
        console.log("按钮3被点击了");
    }).bind("mouseover",function(){
        console.log("鼠标划过了按钮3");
    });

      // 给一个元素的不同事件绑定不同的函数  的第二种写法
      $("#button4").bind({
          "click":function(){
              console.log("按钮4被点击");
          },
          "mouseover":function(){
              console.log("鼠标划过了按钮4");
          },
      });

    //   直接绑定
    $("#button5").click(function(){
        console.log("按钮5被点击了");
    }).mouseover(function(){
        console.log("按钮5移出了");
    });
</script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值