javaScript日期对象、BOM对象、DOM节点

爱⌒轻易说出口 提交于 2020-01-14 02:35:36

日期对象

1. 创建日期对象

  1. var date2 = new Date("2011/11/11");
  2. var date3 = new Date("2011/11/11 11:11:11");

2. 日期对象方法

  1. 读取或设置当前时间的毫秒数:getTime()
  2. 获取时间分量
    • getFullYear()
    • getMonth()
    • getDate()

一、BOM 对象

1. BOM 介绍

​ BOM全称为“Browser Object Model”,浏览器对象模型。提供一系列操作浏览器的属性和方法。核心对象为window对象,不需要手动创建,跟随网页运行自动产生,直接使用,在使用时可以省略书写。

2. 对象方法

  1. 网页弹框
    alert()		//警告框
    confirm()	//确认框
    
  2. 定时器方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GswMELUZ-1577963497110)(assets\setInterval函数2.png)]

周期性定时器
作用:每隔一段时间就执行一次代码

//开启定时器:
var timerID = setInterval(function,interval);
/*
参数 :
 function : 需要执行的代码,可以传入函数名;或匿名函数
 interval : 时间间隔,默认以毫秒为单位 1s = 1000ms
返回值 : 返回定时器的ID,用于关闭定时器
*/

关闭定时器 :

//关闭指定id对应的定时器
clearInterval(timerID);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sUDKdNOB-1577963497112)(assets\setTimeout函数3.png)]

一次性定时器
作用:等待多久之后执行一次代码

//开启超时调用:
var timerId = setTimeout(function,timeout);
//关闭超时调用:
clearTimeout(timerId);

3. 对象属性

window的大部分属性又是对象类型

  1. history

    作用:保存当前窗口所访问过的URL
    属性 : length 表示当前窗口访问过的URL数量
    方法 :

    back() 对应浏览器窗口的后退按钮,访问前一个记录
    forward() 对应前进按钮,访问记录中的下一个URL
    
  2. location

    作用:保存当前窗口的地址栏信息(URL)
    属性 : href 设置或读取当前窗口的地址栏信息
    方法 :

    reload(param) 重载页面(刷新)
    参数为布尔值,默认为 false,表示从缓存中加载,设置为true,强制从服务器根目录加载
    

二、DOM节点操作

DOM全称为 “Document Object Model”,文档对象模型,提供操作HTML文档的方法。(注:每个html文件在浏览器中都视为一篇文档,操作文档实际就是操作页面元素。)

1. 节点对象

JavaScript 会对 html 文档中的元素、属性、文本甚至注释进行封装,称为节点对象,提供相关的属性和方法。

2. 访问节点

  • 元素节点 ( 操作标签)
  • 属性节点(操作标签属性)
  • 文本节点(操作标签的文本内容)

标签属性都是元素节点对象的属性,可以使用点语法访问,例如:

h1.id = "d1"; 		 //set 方法
console.log(h1.id);  //get 方法
h1.id = null;		//remove 方法

注意 :

  • 属性值以字符串表示
  • class属性需要更名为 className,避免与关键字冲突,例如:
    h1.className = “c1 c2 c3”;

3. 操作元素样式

  1. 为元素添加 id、class属性,对应选择器样式
  2. 操作元素的行内样式,访问元素节点的style属性,获取样式对象;样式对象中包含CSS属性,使用点语法操作。
p.style.color = "white";
p.style.width = "300px";
p.style.fontSize = "20px";

注意 :

  • 属性值以字符串形式给出,单位不能省略
  • 如果css属性名包含连接符,使用JS访问时,一律去掉连接符,改为驼峰, font-size -> fontSize

4. 模拟点击

  1. click() 方法可模拟在按钮上的一次鼠标单击。

  2. 语法:

    buttonObject.click();
    

    参数 buttonObject 表示按钮元素对象。

日期对象代码

<body>
    <script>
        var dt = new Date();
        console.log(dt);
        //使用日期对象方法获取 年月日
        var y = dt.getFullYear();
        console.log(y);
        var m = dt.getMonth() + 1;
        console.log(m);
        var d = dt.getDate();
        console.log(d);

        // 获取时分秒
        var h = dt.getHours();
        console.log(h);
        var M = dt.getMinutes();
        console.log(M);
        var s = dt.getSeconds();
        console.log(s);

        // 创建指定日期的时间对象
        var dt2 = new Date("2020-1-3 0:0:0");
        console.log(dt2);

        // 计算时间差

        var t = dt2 - dt;
        console.log(t); // 毫秒数 1s = 1000ms
        // 求还有多少小时
        console.log(t / 1000 /60 / 60);

    </script>
</body>

在这里插入图片描述

confirm确认框代码练习

<body>
    <button id="btn">删除</button>

    <script>
        // alert()
        // prompt()


        // 当btn被点击时,弹出确认框,提示用户是否删除
        // 如果确认 弹框提示删除成功
        window.onload = function(){
            // 查找btn
            var btn = document.getElementById("btn");
            btn.onclick = function(){
                 // confirm 会根据用户的选择返回不同的结果.
                var isDel = confirm("确定要删除吗?")
                // 如果用户点击确定 返回true
                // 点击取消则 返回false
                if (isDel){
                    alert("删除成功")
                }
            }
        }

    </script>
</body>

在这里插入图片描述
在这里插入图片描述

周期性定时器练习

每三秒弹出一个框.当点击清除周期性定时器的时候,停止弹框.

<body>
    <button id="btn">清除周期性定时器</button>
    <script>
        // 周期性定时器
        //
        function sayHello(){
            alert("hello world");
        }
        // 创建周期性定时器
        var timer = setInterval(sayHello,3000);

        // 停止定时器(清除周期性定时器)
        // clearInterval(timer);
        var btn = document.getElementById("btn");
        btn.onclick = function(){
            clearInterval(timer);
            alert("已停止弹框")

        }
    </script>
</body>

一次性定时器

<body>
    <script>
        function sayHello(){
            alert("hello world");
        }
        // 创建一次性定时器
        // 通常用于延时操作
        var timmer = setTimeout(sayHello,3000)
        console.log(timmer);
        clearTimeout(timmer); // 清除一次性定时器
        timmer = null;
        console.log(timmer);

    </script>
</body>

location对象的href属性练习

跳转到某一个页面

<body>
    <button id="btn">Tmooc</button>
    <script>
        console.log(location.href);
        document.getElementById("btn").onclick = function(){
            location.href = "http://www.tmooc.cn/"
        }
    </script>
</body>

做一个页面时间显示器

<body>
    <!-- 在页面中显示当前的时间 -->
    <div id="show"></div>
    <script>
        window.onload = function(){
            // 补零
            // 2 ----02
            // 如果当前的值小于10 需要将当前的值补零变成字符串替换
            // function addZero(num){
            //     if (num<10){
            //         return "0"+num;
            //     }else{
            //         return num+"";
            //     }
            // }
            function addZero(num){
                return num<10 ? "0"+num:num+"";
            }
            var div = document.getElementById("show");
            function timmer(){
                // 获取当前时间对象
            var dt = new Date(); 
            // 获取 h m s  时分秒
            var h = dt.getHours();
            h = addZero(h);
            var m = dt.getMinutes();
            m = addZero(m);
            var s = dt.getSeconds();
            s = addZero(s);
            // 拼接一个字符串  15:11:30
            var time = h + ":" + m + ":" + s;
            console.log(time);
            // 将字符串放入div
            div.innerText = time;
            }
            
            // 定时器1秒后才启动,所以先启动一次.
            timmer();
            // 周期定时器实现 实时时间
            setInterval(timmer,1000)

            // 自动刷新页面 实现实时时间
            // 每1000毫秒刷新一次页面
            // setInterval(function(){
            //     location.reload();
            // },1000);
        }

        
    </script>
</body>

在这里插入图片描述

做一个倒计时的时间练习
    <style>
        .d1{
            text-align: center;
            font-size: 50px;
            background-color: rgb(185, 231, 231);
            color:rgb(2, 2, 2)
        }
    </style>
</head>
<body>
    <div id="show"></div>
    <script>
        window.onload = function(){
            function addZero(num){
                return num<10 ? "0"+num:num+"";
            }
            function daojishi(){
            // 倒计时
            // 获取当前的时间 nowtime
            var nowtime = new Date();
             console.log(nowtime);
            // 获取18:00的时间对象   endtime
            var endtime = new Date("2020-1-2 22:0:0");
            console.log(endtime);
            // 获取时间差 lefttime = endtime-nowtime
            var lefttime = endtime - nowtime;
            console.log(lefttime);
            // 时间差为毫秒 转换成秒在计算
            var lefttime01 = lefttime/1000;
            console.log(lefttime01);
            // 通过时间差计算出  时分秒  h m s
            h = parseInt(lefttime/1000/3600);
            console.log(h)
            h = addZero(h);
            m = parseInt((lefttime01-h*60*60)/60);
            console.log(m);
            m = addZero(m);
            s = parseInt(lefttime01%3600%60);
            console.log(s);
            s = addZero(s);
            // var h = Math.floor( lefttime01 / 3600)
            // console.log(  Math.floor( lefttime01 / 3600)); 
            // 然后将 h m s 补零
            // 显示在div中
            var time = h + ":" + m + ":" + s;
            div = document.getElementsByTagName('div')[0];
            div.innerHTML = time;
        }
        daojishi();
        setInterval(daojishi,1000)
        div.className = "d1"
        }
    </script>
</body>

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!