JavaScript进阶2

自定义对象

let 自定义对象名{

        属性名:属性值,

        

        函数名称:function(形参列表){}

};

注意:在自定义对象中使用当前自定义对象的属性或者函数,需要使用this

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //自定义对象
        let Person={
            //属性名:属性值
            name:"赫赫",
            age:18,

            //定义函数
            eat:function()
            {
                //注意:在自定义对象中使用当前自定义对象的属性或者函数,需要使用this
                console.log("eat"+this.age);//this代表当前对象,即Person
            }
        };
        console.log(Person.name);
        console.log(Person.age);
        Person.eat();//调用函数
    </script>
</body>
</html>

 

window对象

 

1.确认框

let result=window.confirm("提示信息");

        点击确认,返回true;

        点击取消,返回false;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        let boo=window.confirm("确认删除吗");
        if(boo){
            console.log("把删除的物品的id传给后台");
        }
        else{
            console.log("不删除");
        }
    </script>
</body>
</html>

 2.定时器

        let 变量名 =window.setInterval(匿名函数,毫秒)

                说明:每隔多少毫秒执行一次匿名函数体内部的函数体

        取消定时器:

        window.clearInterval(定时器变量名);

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //2s后打印一次hello,然后关闭
        let alarm=window.setInterval(function(){
            console.log("hello");
            //取消定时器
            window.clearInterval(alarm);
        },2000);

        //关闭定时器
        
    </script>
</body>
</html>

        let 变量名=window.setTimeout(匿名函数,毫秒);

                说明间隔多少毫秒执行匿名函数,且只执行一次

 

 地址栏对象(location)

属性:href:要跳转的地址

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //停2秒跳转到百度
        window.setTimeout(function(){
            window.location.href="http://www.baidu.com";
    },2000);
    </script>
</body>
</html>

 

DOM对象

Element:元素对象

获取元素对象:
        1.getElementById() 方法返回拥有指定 id 值的元素。如果元素不存在getElementById() 方法将返回 null

        2.getElementsByClassName() 方法返回拥有指定类名(class属性值)的元素集合。

getElementsByClassName() 方法返回 HTMLCollection

        3.getElementsByName() 方法返回拥有指定名称(name属性值)的元素集合。

getElementsByName() 方法返回实时的 NodeList

        4.getElementsByTagName() 方法返回拥有指定标记名的所有元素的集合。

getElementsByTagName() 方法返回 HTMLCollection

getElementsByTagName() 属性是只读的。

注释:getElementsByTagName("*") 返回文档中的所有元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <img src="../img/小鱼.jpeg" width="50" height="50" id="fish"> <br>

    <div class="hhh">你好呀</div> <br>
    <div class="hhh">好好好</div> <br>

    <input type="checkbox" name="hoppy">踢球
    <input type="checkbox" name="hoppy">喝酒

    <script>
        //获取id为fish的元素对象
      let imgObj=  document.getElementById("fish");//获取的元素对象是Image类型
      console.log(imgObj);

      //获取类名为hhh的元素数组
     let hhhArr= document.getElementsByClassName("hhh");
     console.log(hhhArr.length);//2

     //获取标签名为div的元素数组
     let divArr=document.getElementsByTagName("div");
     console.log(divArr.length);//2

     //获取name属性值为hoppy的元素数组
     let hoppyArr=document.getElementsByName("hoppy");
     console.log(hoppyArr.length);//2
    </script>


</body>
</html>

 

 元素对象的使用,

通过document获取元素对象时,每个标签会被封装成对应的对象,这些对象都有Element对象的属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <img src="../img/小鱼.jpeg" width="50" height="50" id="fish"> <br>

    <div class="hhh">你好呀</div> <br>
    <div class="hhh">好好好</div> <br>

    <input type="checkbox" name="hoppy">踢球
    <input type="checkbox" name="hoppy">喝酒

    <script>
      //修改图片地址
      //1.先获取img标签的Image对象
      let fishId=document.getElementById("fish");
      //2.通过Image对象的src属性修改图片地址
      fishId.src="../img/小熊.jpg";

      //修改div标签的文本的颜色
      //1.获取元素对象
      let divArr=document.getElementsByClassName("hhh");
      for(let di of divArr)//遍历数组,获得Div对象
      {
        //修该元素对象颜色
        di.style.color="red";
        //修改元素对象内容
        di.innerHTML="美丽的"
      }

      //设置复选框都被选中
      let checkArr=document.getElementsByName("hoppy");
      for(let ch of checkArr)//Input Checkbox 对象
      {
        ch.checked=true;
      }
    </script>


</body>
</html>

 

常见的事件

事件名说明
onclick鼠标单机事件
onblur元素失去焦点
onfocus元素获得焦点
onload某个页面或图像被完成加载
onsubmit当表单提交时触发该事件
onkeydown某个键盘的键被按下
onmouseover鼠标被移到某元素之上
onmouseout鼠标从某元素移开

事件绑定

        方式一:通过HTML标签中的事件属性进行绑定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 方式一 -->
    <!-- 给下面的标签绑定单击事件 -->
    <input type="button" value="点我" onclick="on();"/>
    <script>
        //书写on()函数
        function on()
        {
            alert("我被点击");
        }
    </script>

    
</body>
</html>

 

        方式二:通过DOM元素属性进行绑定 : 标签对象.事件名=function(){};

注意:只有是标签对象才可以绑定事件,如果是数组需要遍历数组获取出每个标签对象进行绑定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 方式一 -->
    <!-- 给下面的标签绑定单击事件 -->
    <input type="button" value="点我" id="btn"/>
    <script>
        //标签对象.事件名=function(){};
        //先获取element元素对象
        //注意:只有是标签对象才可以绑定事件,如果是数组需要遍历数组获取出每个标签对象进行绑定
        document.getElementById("btn").onclick=function()
        {
            alert("我又被点击");
        };
    </script>


</body>
</html>

 

 onsubmit事件介绍

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="#" id="register" >
        <input type="text" name="username" id="username">
        <input type="submit" value="提交"> 
    </form>

    <script>
        //获得表单元素对象,并给表单元素邦迪提交事件
        document.getElementById("register").onsubmit=function()
        {
            //获取输入框输入的值
            let usernameValue=document.getElementById("username").value;
            if(usernameValue==""||usernameValue=='')
            {
                //不能提交表单,对于onsubmit事件,如果匿名函数返回false,则此表单数据不提交
                return false;
            }else{
                return true;
                alert(usernameValue);
            }

        }
    </script>
</body>
</html>

 

 onload事件

window的属性,如果将form标签的js代码放到form标签上,那么就会报错,所以使用onload事件,让引擎先加载js代码外的标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

    <script>
        //获得表单元素对象,并给表单元素邦迪提交事件
        document.getElementById("register").onsubmit=function()
        {
            //获取输入框输入的值
            let usernameValue=document.getElementById("username").value;
            if(usernameValue==""||usernameValue=='')
            {
                //不能提交表单,对于onsubmit事件,如果匿名函数返回false,则此表单数据不提交
                return false;
            }else{
                return true;
                alert(usernameValue);
            }

        }
    </script>
    <form action="#" id="register" >
        <input type="text" name="username" id="username">
        <input type="submit" value="提交"> 
    </form>
</body>
</html>

e84290cec0204eaf88eb1d1442581374.png

解决方法:使用onload事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    
</head>
<body>
    <script>
        //当整个页面的html图片,html,css执行完后才执行以下代码
        window.onload=function(){
        
    
        //获得表单元素对象,并给表单元素邦迪提交事件
        document.getElementById("register").onsubmit=function(){
            //获取输入框输入的值
            let usernameValue=document.getElementById("username").value;
            if(usernameValue==""||usernameValue==''){
                //不能提交表单,对于onsubmit事件,如果匿名函数返回false,则此表单数据不提交
                return false;
            }else{
                return true;
                alert(usernameValue);
            }

        }

        }
    </script>
    
    
    <form action="#" id="register" >
        <input type="text" name="username" id="username">
        <input type="submit" value="提交"> 
    </form>
</body>
</html>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落落落sss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值