一个简单的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 相关文章推荐
JavaScript 拾漏补遗
Dec 27 Javascript
Js 回车换行处理的办法及replace方法应用
Jan 24 Javascript
脚本合并提升javascript性能示例
Feb 24 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
Feb 26 Javascript
基于javascript实现按圆形排列DIV元素(三)
Dec 02 Javascript
微信小程序微信支付接入开发实例详解
Apr 12 Javascript
React组件生命周期详解
Jul 03 Javascript
详解Angular.js中$http拦截器的介绍及使用
Jul 04 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
Aug 16 Javascript
vue.js自定义组件directives的实例代码
Nov 09 Javascript
vue和小程序项目中使用iconfont的方法
May 19 Javascript
使用 UniApp 实现小程序的微信登录功能
Jun 09 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
mysql5详细安装教程
2007/01/15 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
[JS]点出统计器
2020/10/11 Javascript
js变量作用域及可访问性的探讨
2006/11/23 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
Python实现网站文件的全备份和差异备份
2014/11/30 Python
简单解析Django框架中的表单验证
2015/07/17 Python
理解Python中的With语句
2016/03/18 Python
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
python实现石头剪刀布程序
2021/01/20 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
python和JavaScript哪个容易上手
2020/06/23 Python
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
ORACLE十问
2015/04/20 面试题
劳动工资科岗位职责范本
2014/03/02 职场文书
学校班班通实施方案
2014/06/11 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
创业计划书之面包店
2019/09/17 职场文书
Python 图片添加美颜效果
2022/04/28 Python