转自:https://mp.weixin.qq.com/s/Jxe3V7D0PFLvIFNZPlSyNg

 <table>
<tr>
<td colspan="4"><input class="txt" type="text" disabled/></td>
</tr>
<tr>
<td colspan="2"><input class="btn_click" type="button" value="AC"/></td>
<td colspan="2"><input class="btn_click" type="button" value="DEL"/></td>
</tr>
<tr>
<td><input class="btn" type="button" value="7"/></td>
<td><input class="btn" type="button" value="8"/></td>
<td><input class="btn" type="button" value="9"/></td>
<td><input class="btn" type="button" value="*"/></td> </tr>
<tr>
<td><input class="btn" type="button" value="4"/></td>
<td><input class="btn" type="button" value="5"/></td>
<td><input class="btn" type="button" value="6"/></td>
<td><input class="btn" type="button" value="/"/></td> </tr>
<tr>
<td><input class="btn" type="button" value="1"/></td>
<td><input class="btn" type="button" value="2"/></td>
<td><input class="btn" type="button" value="3"/></td>
<td><input class="btn" type="button" value="-"/></td> </tr>
<tr>
<td><input class="btn" type="button" value="0"/></td>
<td><input class="btn" type="button" value="."/></td>
<td><input class="btn" type="button" value="+"/></td>
<td><input class="btn" type="button" value="="/></td> </tr> </table>
<style>
table{ border-collapse: collapse; margin: auto auto;
} td{ width: 150px; line-height: 70px;
} .btn{ width: 150px; line-height: 70px; font-size: x-large;
} .btn_click{ width: 302px; line-height: 70px; font-size: x-large;
} .txt{ width: 600px; line-height: 100px; font-size: x-large;text-align: right;
} </style>
<script>    /*在网页加载时  给按钮添加点击事件*/
window.onload = function () { //定义数组 来接收用户按的数字和计算符号
var way_res = []; //获取按钮对象
var btn_txt = document.getElementsByClassName("btn"); //获取屏幕元素
var txt = document.getElementsByClassName("txt")[0]; //获取清空按钮和退格按钮
var btn_way = document.getElementsByClassName("btn_click"); for (var i = 0; i < btn_way.length; i++) {
btn_way[i].onclick = function () { //判断按钮
if (this.value == "AC") {
way_res = [];
txt.value = "";
} else { /* substr() 截断字符串 1.从那个位置开始 2.截取多少长度*/
txt.value = txt.value.substr(0, txt.value.length - 1);
}
}
} //给btn_txt 数组对象添加事件
for (var i = 0; i < btn_txt.length; i++) {
btn_txt[i].onclick = function () { /* this 指代的是当前事件的执行对象*/
/*按完键将值传给屏幕*/
/*判断是否为数字*/
if (txt.value == "" && this.value == ".") {
txt.value = "0.";
} else { if (!isNaN(this.value) || this.value == ".") { /*用户输入的是数字或者点的情况*/
/*indexOf() 用来查找字符 如果有返回当前位置 如果没有返回-1*/
if (txt.value.indexOf(".") != -1) { /*有点存在的情况*/
if (this.value != ".") { /*当前按得不是点,进行拼接*/
txt.value += this.value;
}
} else { /*没点存在直接拼接*/
txt.value += this.value;
}
} else { /*是符号的情况*/
//先存值 在清屏
if (this.value != "=") { /*是符号但不为等号的情况*/
way_res[way_res.length] = txt.value; //存符号
way_res[way_res.length] = this.value; //清屏
txt.value = "";
} else { /*是等号的情况*/
way_res[way_res.length] = txt.value; //eval()方法 专门用来计算表达式的值
txt.value = eval(way_res.join("")); //计算完成之后将数组清空
way_res = [];
}
}
}
}
}
}
</script>

js 计算器转摘的更多相关文章

  1. 早期练手:功能相对比较完善的 js 计算器

    第一次发博客,就先发一个自己早期,刚开始学前端时,用js写的一个计算器吧,计算功能比较少,只有 + - * / ,不过其他功能还是比较完善的,比如: 输出结果后,连续按"=",可以 ...

  2. js计算器案例

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>j ...

  3. js计算器---转

    至今见过的一个还没问题的计算器,收藏在此. 转自javascript写的简单的计算器原文链接,谢分享! js部分 ar num=0,result=0,numshow="0"; va ...

  4. 简易js计算器

    使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除. <!DOCTYPE html> <html> <head> ...

  5. JS计算器(自制)

    <!doctype html><html><header><meta charset="utf-8"><script src= ...

  6. js计算器

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  7. js精度(摘)

    Math.formatFloat = function (f, digit) {    var m = Math.pow(10, digit);    return parseInt(f * m, 1 ...

  8. 基于js白色简洁样式计算器

    今天给大家分享一款白色简洁样式计算器JS代码是一款精美简洁计算器JS代码插件网页特效,软件应用,后台应用JS计算器插件代码免费下载.适用浏览器:360.FireFox.Chrome.Safari.Op ...

  9. 纯JS实现房贷利率报表对比

    最近朋友买房,想计算下自己的房贷的还款情况,自己正好周末没事,从网上找来点代码修改,也算是对自己技术的巩固吧. 目前这个还只是个初级版本,暂时可以在PC上正常访问,将来会一步一步的把相继功能都加上的, ...

随机推荐

  1. MySQL提示“too many connections”的解决办法

    今天生产服务器上的MySQL出现了一个不算太陌生的错误"Too many connections".平常碰到这个问题,我基本上是修改/etc/my.cnf的max_connecti ...

  2. 关于二叉查找树的一些事儿(bst详解,平衡树入门)

    最近刚学了平衡树,然后突发奇想写几篇博客纪念一下,可能由于是刚学的缘故,还有点儿生疏,望大家海涵 说到平衡树,就不得不从基础说起,而基础,正是二叉查找树 什么是二叉查找树?? 大家观察一下下面的这棵二 ...

  3. Kali Linux安装VMWare Tools

    操作环境: 虚拟机操作系统: Kali Linux 2017.2 虚拟化软件: VMWare workstation 14 pro 加载光盘 在VMWare上依次点击"虚拟机->安装V ...

  4. Spring Cloud构建微服务架构(二)服务消费者

    Netflix Ribbon is an Inter Process Communication (IPC) cloud library. Ribbon primarily provides clie ...

  5. screen,client,page三种确定鼠标坐标的区别和原生JS事件写法,区别于Jquery的$.on(x,y);和$.click()

    screenX clientX pageX的区别 screenX:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角. clientX:跟scre ...

  6. 开机进入grub命令行之后。。。。

    最近由于经常整理自己电脑上的文件,难免都会遇到误删系统文件或者操作失误导致系统不能够正常进入的情况.这时就会出现grub错误的提示,只能输入命令才能进入系统.那么该输入什么命令呢?其实非常简单. gr ...

  7. counter.go

    package engine func (engine *Engine) NumTokenIndexAdded() uint64 {     return engine.numTokenIndexAd ...

  8. BZOJ_2795_[Poi2012]A Horrible Poem_hash+暴力

    Description 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节. 如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到. Input 第一行一个正 ...

  9. BZOJ_1003_[ZJOI2006]物流运输_最短路+dp

    BZOJ_1003_[ZJOI2006]物流运输_最短路+dp 题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1003 分析: 这种一段一段的显 ...

  10. BZOJ_1800_[Ahoi2009]fly 飞行棋_乱搞

    BZOJ_1800_[Ahoi2009]fly 飞行棋_乱搞 Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的 ...