一个简单的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学习笔记8 用JSON做原型
Jan 11 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
javascript修改表格背景色实例代码分享
Dec 10 Javascript
JavaScript设计模式之抽象工厂模式介绍
Dec 28 Javascript
jQuery中filter()方法用法实例
Jan 06 Javascript
js判断文本框输入的内容是否为数字
Dec 23 Javascript
jquery Deferred 快速解决异步回调的问题
Apr 05 Javascript
jQuery实现复制到粘贴板功能
Feb 11 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
Apr 17 Javascript
微信小程序获取用户绑定手机号方法示例
Jul 21 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
May 10 Javascript
在vue中import()语法不能传入变量的问题及解决
Apr 01 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
微信公众平台开发之配置与请求
2015/08/26 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
javascript实现的动态文字变换
2007/07/28 Javascript
JavaScript的eval JSON object问题
2009/11/15 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
python 构造三维全零数组的方法
2018/11/12 Python
python使用PyQt5的简单方法
2019/02/27 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
2019/12/12 Python
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
科颜氏香港官方网店:Kiehl’s香港
2021/03/07 全球购物
关于环保的标语
2014/06/13 职场文书
创先争优演讲稿
2014/09/15 职场文书
婚前协议书范本
2014/10/27 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
python中super()函数的理解与基本使用
2021/08/30 Python
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL