当前位置: 首页 > news >正文

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还是有一些浏览器不支持,所以,我们的原则是只要有用户不能照顾到就不使用。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • IGNAV_NHC分析
  • 【深度学习】训练过程中一个OOM的问题,太难查了
  • 多人开发小程序设置体验版的痛点
  • 视频推拉流/直播点播EasyDSS平台安装失败并报错“install mediaserver error”是什么原因?
  • Centos7.9部署Gitlab-ce-16.9
  • 【人工智能学习笔记】3_2 机器学习基础之机器学习经典算法介绍
  • 程序员如何写笔记并整理资料?
  • react js 路由 Router
  • 跑步戴的耳机哪个品牌的好?全新测评推荐五大爆款骨传导运动耳机
  • 工业一体机帮助MES系统打通工厂数据采集及目视化
  • Python 如何类与对象
  • 同声翻译+AI+呼叫中心的结合
  • 网络通信安全:全面探索与深入分析
  • 如何保证Redis与Mysql双写一致性?
  • 泰语快速学习方法!速成方法学习!
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • CSS 提示工具(Tooltip)
  • Java反射-动态类加载和重新加载
  • PaddlePaddle-GitHub的正确打开姿势
  • Python学习之路16-使用API
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Zepto.js源码学习之二
  • 前端路由实现-history
  • 如何设计一个比特币钱包服务
  • 算法---两个栈实现一个队列
  • 智能合约Solidity教程-事件和日志(一)
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • $.ajax()
  • (python)数据结构---字典
  • (八十八)VFL语言初步 - 实现布局
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (四)库存超卖案例实战——优化redis分布式锁
  • (算法二)滑动窗口
  • (转)四层和七层负载均衡的区别
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 使用配置文件
  • .NET技术成长路线架构图
  • .NET中的十进制浮点类型,徐汇区网站设计
  • @hook扩展分析
  • @vue-office/excel 解决移动端预览excel文件触发软键盘
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • [@Controller]4 详解@ModelAttribute
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [Android]使用Git将项目提交到GitHub
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [C#]获取指定文件夹下的所有文件名(递归)
  • [C][数据结构][树]详细讲解
  • [C++][opencv]基于opencv实现photoshop算法可选颜色调整
  • [hdu 3652] B-number
  • [LeetCode] Ransom Note 赎金条