一个简单的jQuery计算器实现了连续计算功能


Posted in Javascript onJuly 21, 2014

一个简单的jQuery计算器,只是实现了一个连续计算的功能

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf8"/> 
<title>Javascript计算器</title> 
</head> 
<body> 
<table> 
<tr> 
<td colspan="4"><input id="show" value="0"/></td> 
</tr> 
<tr> 
<td><button onclick="number(this)" value="7">7</button></td> 
<td><button onclick="number(this)" value="8">8</button></td> 
<td><button onclick="number(this)" value="9">9</button></td> 
<td><button onclick="calsym(this)" value="+">+</button></td> 
</tr> 
<tr> 
<td><button onclick="number(this)" value="4">4</button></td> 
<td><button onclick="number(this)" value="5">5</button></td> 
<td><button onclick="number(this)" value="6">6</button></td> 
<td><button onclick="calsym(this)" value="-">-</button></td> 
</tr> 
<tr> 
<td><button onclick="number(this)" value="1">1</button></td> 
<td><button onclick="number(this)" value="2">2</button></td> 
<td><button onclick="number(this)" value="3">3</button></td> 
<td><button onclick="calsym(this)" value="*">*</button></td> 
</tr> 
<tr> 
<td><button onclick="number(this)" value="0">0</button></td> 
<td><button onclick="calsym(this)" value="=">=</button></td> 
<td><button onclick="clearCal()" value="c">c</button></td> 
<td><button onclick="calsym(this)" value="/">/</button></td> 
</tr> 
</table> 
</body> 
<script type="text/javascript" src="jquery-1.9.1.js"></script> 
<script type="text/javascript" src="jquery-1.9.1.min.js"></script> 
<script type="text/javascript"> 
var num0 = null; 
var num1 = null; 
var symble = null; 
var lastclick = null; 
var symarr = new Array(); //符号集合 
symarr[0] = '+'; 
symarr[1] = '/'; 
symarr[2] = '*'; 
symarr[3] = '-'; 
symarr[4] = '='; 
function number(n){ 
var numnow = $('#show'); 
var _exist=$.inArray(lastclick,symarr); //判断上次点击是否为符号 
if (numnow.val() == 0 || _exist != -1) {//若显示框为0 或者上次点击为符号,则重新记录显示框 
numnow.val($(n).val()); 
}else{ 
numnow.val(parseInt(numnow.val()) * 10 +parseInt($(n).val())); 
} 
lastclick = $(n).val(); // 更新上次点击 
} 

function calsym(cs){ //符号点击事件响应 
var numnow = $('#show'); 
var _exist=$.inArray(lastclick,symarr); 
if (num0 == null && symble == null) { //初始状态 
num0 = numnow.val(); 
symble = $(cs).val(); 
}else if(num0 != null && num1 == null && _exist !=-1){ // 连续点操作符的处理,及第一次点击操作符处理 
symble = $(cs).val(); 
}else{ //正常计算状态 
num1 = numnow.val(); 
var result = calculate(symble,num0,num1); 
symble = $(cs).val(); //上行及本行:先计算之前的运算符及结果,再更新运算符为本次点击 
num0 = result; 
numnow.val(result); 
num1 = null; 
} 
lastclick = $(cs).val(); // 更新上次点击 
} 

function clearCal(){ //清空函数 
$('#show').val('0'); 
num0 = null; 
num1 = null; 
symble = null; 
lastclick = null; 
} 

function calculate(sym,m,n){ //计算并返回结果 
var res = null; 
m = parseInt(m); 
n = parseInt(n); 
switch(sym){ 
case '+': 
res = m+n; 
break; 
case '-': 
res = m-n; 
break; 
case '*': 
res = m*n; 
break; 
case '/': 
if (n == 0) { 
alert("false"); 
break; 
} 
res = m/n; 
break; 
default: 
break; 
} 
return res; 
} 
</script> 
</html>
Javascript 相关文章推荐
Document对象内容集合(比较全)
Sep 06 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
Aug 22 Javascript
在JavaScript中调用Java类和接口的方法
Sep 07 Javascript
js判断PC端与移动端跳转
Dec 24 Javascript
详谈jQuery.load()和Jsp的include的区别
Apr 12 jQuery
微信小程序 侧滑删除(左滑删除)
May 23 Javascript
vue input输入框模糊查询的示例代码
May 22 Javascript
微信小程序实现两个页面传值的方法分析
Dec 11 Javascript
Mint UI组件库CheckList使用及踩坑总结
Dec 20 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
Jul 25 Javascript
vue中监听返回键问题
Aug 28 Javascript
JavaScript访问CSS属性的几种方式介绍
Jul 21 #Javascript
javascript实现的元素拖动函数宿主为浏览器
Jul 21 #Javascript
javascript定义变量时有var和没有var的区别探讨
Jul 21 #Javascript
JQuery中$(document)是什么意思有什么作用
Jul 21 #Javascript
jquery显示隐藏input对象
Jul 21 #Javascript
jquery实现保存已选用户
Jul 21 #Javascript
jquery实现显示已选用户
Jul 21 #Javascript
You might like
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
Ext面向对象开发实践(续)
2008/11/18 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
jQuery示例收集
2010/11/05 Javascript
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
node读写Excel操作实例分析
2019/11/06 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
零基础学Python(一)Python环境安装
2014/08/20 Python
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
pandas数据集的端到端处理
2019/02/18 Python
详解Python sys.argv使用方法
2019/05/10 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
节水倡议书范文
2014/04/15 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
销售口号霸气押韵
2015/12/24 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
Python中requests做接口测试的方法
2021/05/30 Python