JavaScript高级进阶(二)

JS弹窗

弹窗与语法

警告窗  window.alert()//用于确保用户可以得到某些信息

确认窗 window.confirm()//用于验证是否接受用户操作

提示窗 window.prompt()//用于提示用户在进入页面前输入某个值

 <script>

        //警告窗

        alert('欢迎光临');

       //提示框

        var str = prompt('是不是给脸给多了','可不敢');

        console.log(str);

    </script>

dc973209195547f8893e9c732c546c40.png

45080828426a445484b928157bcae078.png 

prompt后面括号逗号后的,是设置的括号的默认值。

//确认框

  var aaa = confirm('是否允许查看本地文件')

        if(aaa){

            console.log('获取了用户文件');

        }else{'没有获取'}

d483abbb655a4d49aea56bda3fd2731e.png

13f0aa529b4f473e989d71d8a614bf89.png 

可以用判断语句承接是否要进行某些操作。

既然都说到这了,不得不说一段神奇的代码了:

<button οnclick="clear_()">清理垃圾</button>

    <script>

        function clear_(){

            alert('清理成功')

        }

e916c318476b470a82b2a9358e5c40b6.png

4cca2c2e5bb7424381558c87a1238bdf.png 

对,就是这种坑货代码,以前类似的还不少,点一下光给了个心里安慰。

JavaScript计时事件

语法与说明 

setInterval()//间隔指定的毫秒数不停的执行指定代码

        clearInterval()//用于停止setInterval()方法执行的函数代码

        setTimeout()//暂停指定的毫秒数后执行指定代码

        clearTimeout()//用于停止执行setTimeout()方法的函数代码

下面就写个计时器

 //计时器

        setInterval(fn,time);//间隔time毫秒,执行一次fn函数,不断的执行,直到清除定时器或关闭页面。

<script>

        //num倒计时,num为0时结束,页面输出num.

        var num = 3;

        var timer = setInterval(function(){

            num--;

            console.log(num);

            //清除定时器

            if(num==0){

                clearInterval(timer);

            }

        },1000)

    </script>

e88f234918424f46850192aca8db35d4.png

一般是var定义一下变量timer,再timer=setInterval,写个计时器就明白了:

<body>

    <!-- 开始结束按钮控制计时器 -->

    <button οnclick="start_()">开始</button>

    <button οnclick="end_()">结束</button>

    <script>

        var num = 0;

        var timer;

        function start_() {

            // 定时器ID赋值给timer

            timer = setInterval(function(){

                num++;

                console.log(num);

            }, 1000);

        }

        function end_() {

            clearInterval(timer); // 清除定时器

        }

    </script>

</body>

96f90a5396cd429a82881ee75e7f6986.png

 但写到这,探索能力强的同学可能就发现了问题,狂点开始按钮,计数会出现不受控制的现象,结束都刹不住,这是因为你快速点击的时候它会出现叠加。

017b5bdf1cd64b47bc267ac1b559c67f.png

如何解决呢?

关键在这个叠加上,每次点击时加一个清空定时器的步骤就行了:

 <!-- 开始结束按钮控制计时器 -->

    <button οnclick="start_()">开始</button>

    <button οnclick="end_()">结束</button>

    <script>

        var num = 0;

        var timer;

        function start_() {

            clearInterval(timer);

            timer = setInterval(function(){

                num++;

                console.log(num);

            }, 1000);

        }

        function end_() {

            clearInterval(timer); 

        }

    </script>

其他不变,问题就解决了。

这个计时器可以用在那些地方呢,小广告,就那种打开页面几秒后自动弹出的小广告,不要觉得掉价啊,学前端要能上厅堂能下厨房,做全方位人才。

什么是dom

DOM:Document Object Model(文档对象模型),是HTML文档对象模型定义的一套标准方法,用来访问和操纵HTML文档。

dom查找页面找html页面元素

语法

        document.getElementById//通过id属性获得对象

        document.getElementsByTagName//通过标签名获取对象

                                                                          document.getElementsByClassName//通过class属性获取对象

浏览器自动生成的就是bom,我们写在页面上的所有文字,图片……都统称dom,这下因该分得清了。

document.getElementsByTagName(“标签名”)通过标签名获取对象,因为页面可能会有很多相同的标签,所以返回值是一个数组,通过类名ClassName返回值也是一个数组。

下面演示获取dom元素的几种方法:

写三个按钮分别对应几种方法

<body>

    <button>标签</button>

    <button class="btn">类名</button>

    <button id="name">id</button>

</body>

<script>

    //通过标签获取元素 document.getElementsByTagName('标签'),返回的值是一个数组

    var tag = document.getElementsByTagName('button');

    console.log(tag);

    tag[0].οnclick=function(){

        alert('标签名获取元素')

    }   

</script>

9031ec62cd814dcf8f1b4e57106e7643.png

 点一下标签按钮就会显示出是通过标签拿到的元素

0f31c03f2b0e47c4a0abf3b6299f4603.png

//通过类名获取,返回数组。                      var class_ = document.getElementsByClassName('btn');

    console.log(class_);

    class_[0].οnclick=function(){

        alert('类名获取元素')

    }

47cc03327df34929ae422631c15e8d6e.png

496516f175a747d2962f10f40c2e130a.png 

  //通过id名获取元素

    var name_ = document.getElementById('name');

    console.log(name_);

    name_.οnclick=function(){

        alert('id获取元素')

    }

93af4808a4e644c4b31405acf287c226.png

36db3d2358504a40880a5a62c0238101.png 

 id获取是唯一。

//id名可以直接用拿来用,相当于通过getElementById来找,部分浏览器不支持

    name.οnclick=function(){

        alert('直接找')

    }

这里的name被自动解析为具有相应id的元素。尽管这个特性在某些旧的浏览器中有效,但这种用法并不符合现代JavaScript的标准,并且在现代浏览器中可能无法得到一致的支持。

    //还有一种方法querySelector('标签名/#id名/.类名')

    //找到第一个符合的元素,第一个button

    var btnQS =document.querySelector('button');

    //第一个类名是btn的标签

    var btnQS =document.querySelector('.btn');

    //找到id标签

    var btnQS =document.querySelector('#name');

    //找到所有的button标签

    var btnQS =document.querySelectorAll('button');

    //找到所有类名是btn的标签

    var btnQS =document.querySelectorAll('button');

但是,凡事都有但是,querySelector还是有一些浏览器不支持,所以,我们的原则是只要有用户不能照顾到就不使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值