js实现一个简易的计算器
作者:nqq0921 发布时间:2024-02-23 11:48:31
标签:js,计算器
利用原生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>
<style>
.divs {
width: 500px;
height: 600px;
border: 1px solid #000000;
margin: auto;
}
.divs > input {
width: 460px;
height: 45px;
margin-left: 18px;
margin-top: 10px;
font-size: 30px;
background-color: white;
text-align: right;
}
.divs > div {
width: 100px;
height: 100px;
float: left;
border: 1px solid #000000;
margin-left: 18px;
margin-top: 25px;
font-size: 40px;
line-height: 100px;
text-align: center;
user-select: none;
}
</style>
</head>
<body>
<div class="divs">
<input type="text" value="0" id="input1" disabled />
<div class="block">7</div>
<div class="block">8</div>
<div class="block">9</div>
<div class="block">-</div>
<div class="block">4</div>
<div class="block">5</div>
<div class="block">6</div>
<div class="block">+</div>
<div class="block">1</div>
<div class="block">2</div>
<div class="block">3</div>
<div class="block">*</div>
<div class="block">C</div>
<div class="block">0</div>
<div class="block">=</div>
<div class="block">/</div>
</div>
js:
<script>
// 获取到所有类名为block的元素
var blocks = document.getElementsByClassName("block");
// 获取到input
var input = document.getElementById("input1");
// 声明第一个数值
var firstValue = 0,
bool = false;
// 声明运算符
var type;
for (var i = 0; i < blocks.length; i++) {
//点击第i个block
blocks[i].onclick = function () {
//点击谁,this就指向谁,在这里this指向每次点击的元素
console.log(this);
//this.innerHTML显示点击的div里面的内容(比如1,2,3,-,+)
//判断点击的为数字的情况(不是NaN,就是数字)
if (!isNaN(this.innerHTML)) {
// bool初始为false,当bool为false时,可以不断输入,当bool为true时,input清空为0
if (bool) {
input.value = "0";
bool = false;
}
// 将input中的value累加点击的内容,将它强转为数字是为了去掉最前面的0,最后再转为字符
input.value = Number(input.value + this.innerHTML).toString();
} else {
//判断点击为+ - * /的情况
if (this.innerHTML !== "C" && this.innerHTML !== "=") {
//将第一个数存到firstValue
firstValue = Number(input.value);
//将运算符存到type
type = this.innerHTML;
//将input中的value重置为0
input.value = "0";
} else if (this.innerHTML === "C") { //判断点击C的情况
// 全都重置
firstValue = 0;
type = undefined;
input.value = "0";
} else { //判断点击=的情况
//根据运算符的类型进行运算
switch (type) {
case "+":
input.value = (firstValue + Number(input.value)).toString();
break;
case "-":
input.value = (firstValue - Number(input.value)).toString();
break;
case "*":
input.value = (firstValue * Number(input.value)).toString();
break;
case "/":
// 除数为0时重置input.value
if (Number(input.value) === 0) input.value = "0";
else
input.value = (firstValue / Number(input.value)).toString();
break;
}
//bool为true时,点击"="后,当再次输入时,input.value为0
bool = true;
}
}
};
}
来源:https://blog.csdn.net/nqq0921/article/details/115536722


猜你喜欢
- 代码import xlrdimport os from prettytable import PrettyTableimport panda
- 请问如何从ASP连接到Oracle Server?可用下面的代码进行连接: <%@ Lan
- 前不久有个正要毕业的网友给我发邮件,他毕业设计需要实现锁屏的效果,但是他没有能看懂我之前发布的对话框源码,他问能不能把锁屏相关代码说明下,我
- 用IIS调试ASP程序时,有的页面可以显示出错行及出错原因,虽然原因不是很具体但足以引导调试程序,但有些时候就直接出现:HTTP 500 -
- 修改密码://选择数据库use mysql;//修改密码update user set password=password('新密码
- 本文实例为大家分享了python提取英语pdf内容并翻译的具体代码,供大家参考,具体内容如下前期准备工作:翻译接口: 调用的是百度翻译的ap
- Python:1. print()函数:打印字符串2. raw_input()函数:从用户键盘捕获字符3. len()函数:计算字符长度4.
- 枚举是常用的功能,看看Python的枚举.from enum import EnumMonth = Enum('Month'
- NICE!大家好,在上一章节,我们学习了 multiprocessing 模块 的关于进程的创建与进场常用的方法的相关知识。 通过在一个主进
- 本文实例讲述了Python基于回溯法解决01背包问题。分享给大家供大家参考,具体如下:同样的01背包问题,前面采用动态规划的方法,现在用回溯
- 一个小项目自动登录淘宝联盟抓取数据,由于之前在Github上看过类似用Python写的代码因此选择用Python来写,第一次用Python正
- HTML代码: <div class="float" id="float"> 我是个腼腆
- 背景:因为工作需要,公司给每个员工都分配了一个邮箱 公司的各种业务都通过邮箱发送。虽然给每个员工的电脑都设置pop3登录但是他们的程序设定有
- 抽象类作用:抽象类就是控制子类的方法的名称,要求子类必须按照父类的要求的实现指定的方法,且方法名要和父类保持一致一、问题场景主要使用场景是这
- 错误代码如下:NotFoundError (see above for traceback): Unsuccessful TensorSli
- CSS执行顺序与优先权的问题其实就是一个冲突解决的问题,当同一个元素(或内容)被CSS选择符选中时,就要按照优先权取舍不同的CSS规则,这其
- 前言这篇博客将介绍光流的概念以及如何使用 Lucas-Kanade 方法估计光流,并演示如何使用 cv2.calcOpticalFlowPy
- 为了查找这些存储过程,你可以花时间在互联网搜索,查看一些你还未知道的存储过程,也许在一两个小时您可能会发现你想要...也许你很幸运的找到,其
- PyCharm就是Python语言开发中一个很受欢迎的IDE,界面类似于visual studio,android studio,集成的功能
- Git跟其他版本控制系统一样,可以打标签(tag)标记一个版本号。发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时