一个简单的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 相关文章推荐
图片延迟加载的实现代码(模仿懒惰)
Mar 29 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
Sep 03 Javascript
jquery制作LED 时钟特效
Feb 01 Javascript
深入理解React中es6创建组件this的方法
Aug 29 Javascript
JavaScript生成简单等差数列
Nov 28 Javascript
详解Vue源码学习之双向绑定
Apr 10 Javascript
Vue中的组件及路由使用实例代码详解
May 22 Javascript
ES6数组与对象的解构赋值详解
Jun 14 Javascript
微信小程序与公众号卡券/会员打通的问题
Jul 25 Javascript
解决layui table表单提示数据接口请求异常的问题
Sep 24 Javascript
uniapp微信小程序实现一个页面多个倒计时
Nov 01 Javascript
Vue3中的Refs和Ref详情
Nov 11 Vue.js
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.ini中文版
2006/10/09 PHP
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
PHP插件PHPMailer发送邮件功能
2017/02/28 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
[51:07]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
SQL中where和having的区别
2012/06/17 面试题
如何通过jdbc调用存储过程
2012/04/19 面试题
七一党日活动总结
2014/07/08 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
写给医院的感谢信
2015/01/22 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
外贸英文求职信范文
2015/03/19 职场文书