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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/420833.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程(Thread)

目录 线程&#xff08;Thread&#xff09; 线程的创建方式 实现方式 Runnable和Callable的区别 线程的命名和优先级 线程的六种状态 线程的插队 线程的中断 线程的让出 守护线程 设置线程为守护线程 sleep()和wait()的区别 线程的同步synchronized锁 语法格式 实现…

使用kubeadm部署k8s集群

1、简介 K8s部署主要有两种方式&#xff1a; 1、Kubeadm Kubeadm是一个K8s部署工具&#xff0c;提供kubeadm init和kubeadm join&#xff0c;用于快速部署Kubernetes集群。 2、二进制 从github下载发行版的二进制包&#xff0c;手动部署每个组件&#xff0c;组成Kubernetes集…

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署WordPress网站

828华为云征文&#xff5c;华为云Flexus云服务器X实例之openEuler系统下部署wordpress网站 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、WordPress介绍2.1 WordPress简介2.2 WordPress主要特点…

有什么免费好用的ai写作软件?2024帮助你快速进行写作的软件

有什么免费好用的ai写作软件&#xff1f;2024帮助你快速进行写作的软件 AI写作软件如今在提升写作效率、生成灵感、以及帮助完成复杂的写作任务方面表现得越来越出色。以下是五款免费且好用的AI写作软件&#xff0c;它们能够帮助你快速进行写作&#xff0c;无论是博客文章、市…

面试官:为什么 Redis 6.0 之后引入多线程?

大家好&#xff0c;我是大明哥&#xff0c;一个专注「死磕 Java」系列创作的硬核程序员。 回答 Redis 的性能瓶颈从来都不是 CPU&#xff0c;是网络I/O 和内存。 内存好解决&#xff0c;加机器内存和优化数据结构。 网路 I/O 的优化才是大头&#xff0c;因为读写网络的 read…

U盘格式化怎么办?这4款软件可以帮你进行数据恢复。

如果你的U 盘被格式化&#xff0c;里面的数据就会被清除掉了。有备份的话&#xff0c;就不用担心丢失那些重要的数据&#xff1b;如果没有备份&#xff0c;也有办法解决&#xff1b;可以用电脑自带的一些功能恢复&#xff0c;或者是使用专业的恢复软件。如果大家有需求&#xf…

【MTC拾取放置示例】将Connect中的最大目标偏差检查增加到1e-2,实现move to pick/move to place

问题描述 在运行Moveit2使用MTC构建拾取放置示例Pick and Place with MoveIt Task Constructor的时候出现报错 move to pick规划失败 “The computed trajectory is too short to detect jumps in joint-space. Need at least 10 steps, only got 2. Try a lower max_step”…

自带线充电宝哪个牌子质量好性价比高?口碑最好自带线充电宝

在如今这个快节奏的时代&#xff0c;手机等电子设备已经成为我们生活中不可或缺的一部分。然而&#xff0c;电量不足的困扰时常让我们陷入尴尬境地。自带线充电宝的出现&#xff0c;无疑为我们解决了这一难题。它不仅方便携带&#xff0c;无需再额外携带充电线&#xff0c;而且…

iphone16-iphone16pro原壁纸分享

iphone16-iphone16pro原壁纸分享 苹果公司在2024年9月10日的秋季新品发布会上正式推出了iPhone 16系列智能手机。以下是iPhone 16系列的主要特点和更新&#xff1a; 全新A18芯片&#xff1a;iPhone 16系列搭载了苹果最新的A18芯片&#xff0c;这款芯片专为苹果智能&#xff08;…

2024年CCPC网络赛K题题解 —— 取沙子游戏(gym105336K)

比较新的一类博弈题&#xff0c;考虑对因子的处理。题面&#xff1a; 在网络赛以前&#xff0c;我曾经做到过一道类似的题目&#xff1a; Bob和Alice和两堆石头&#xff0c;一堆有s1个&#xff0c;另一堆有s2个&#xff0c;然后Alice先手&#xff0c;每个人每次可以选择一堆石头…

【NVMe SSD寄存器、数据结构】NVMe Controller 重要寄存器、SSD内部跟NVMe相关的重要数据结构解析

前言 NVMe Controller会将一些重要的信息&#xff08;NVMe控制器的能力&#xff0c;状态&#xff0c;Admin SQ, CQ地址等&#xff09;直接放在NVMe寄存器中&#xff0c;另一部分&#xff08;跟SSD比较相关的&#xff09;信息会放置在SSD内部&#xff0c;并最终通过Admin NVMe …

UML的图及其他图补充

一、UML图 1.类图 ‌类图‌是统一建模语言&#xff08;UML&#xff09;中的一种静态结构图&#xff0c;主要用于描述软件系统的静态结构。它显示了模型中的类、类的内部结构以及它们与其他类的关系。类图是面向对象建模的主要组成部分&#xff0c;用于对系统的词汇进行建模、对…

C++day7

一、思维导图 二、模板类实现myStack和myQueue #include <iostream>using namespace std;template <typename T> class MyStack { private:T* arr;int capacity;int topIndex;public:MyStack(int size);~MyStack();void push(const T& value);void pop();T to…

无线通信 | 射频校准的概念、作用和步骤以及相关仪器

微信公众号上线&#xff0c;搜索公众号小灰灰的FPGA,关注可获取相关源码&#xff0c;定期更新有关FPGA的项目以及开源项目源码&#xff0c;包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 本节目录 一、射频校准 1、射频校…

面向物联网基础的智能农业环境的节能边缘-雾-云计算架构

这篇论文的标题是《Energy-Efficient Edge-Fog-Cloud Architecture for IoT-Based Smart Agriculture Environment》&#xff0c;作者是Hatem A. Alharbi和Mohammad Aldossary&#xff0c;发表在IEEE Access期刊上。论文的主要内容可以概括为以下几个部分&#xff1a; 摘要&am…

戏曲文化苑管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;操作日志管理&#xff0c;基础数据管理&#xff0c;公告管理&#xff0c;戏曲管理&#xff0c;用户管理&#xff0c;轮播图信息 微信端账号功能包括&#xff1a;系统首页&#…

vue 使用vue-quill-editor 富文本添加源码模式,查看源码功能和表格功能

今天接到个需求&#xff0c;在富文本中增加查看源码和增加表格功能&#xff0c;感觉这种功能手拿把掐&#xff0c;但是奈于平时沉迷于移动端有段时间没写pc了&#xff0c;看了下官方感觉一个头两个大&#xff0c;于是在茫茫文档中各种借鉴&#xff08;抄袭&#xff09;完成了功…

口袋微店多店铺管理解决方案:甜羊浏览器的应用

#### 前言 随着移动互联网的快速发展&#xff0c;口袋微店成为了众多商家首选的在线销售平台。然而&#xff0c;对于拥有多个口袋微店店铺的商家而言&#xff0c;如何高效地管理这些店铺成为了一大挑战。为了帮助商家解决这一难题&#xff0c;我们推荐使用甜羊浏览器&#xff…

局域网一套键鼠控制两台电脑(台式机和笔记本)

服务端&#xff08;有键盘和鼠标的电脑作为服务端&#xff09; 下载软件 分享文件&#xff1a;BarrierSetup-2.3.3.exe 链接&#xff1a;https://pan.xunlei.com/s/VO66rAZkzxTxVm-0QRCJ33mMA1?pwd4jde# 配置服务端 一&#xff0c; 二&#xff0c; 客户端屏幕名称一定要和…

携手浙商证券、华锐技术,共话交易技术的创新与应用

秉承“虚已者进德之基&#xff0c;求同存异谓之共赢”的理念&#xff0c;浙商证券联合非凸科技、华锐技术于8月28日在深圳举办了“量化机遇汇浙&#xff0c;交易技术共商”鑫管家私募沙龙纷享会。此次活动汇聚了众多优秀管理人与资方代表&#xff0c;分享前沿观点&#xff0c;探…