<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>jquery计算器http://www.cnblogs.com/boyzi/</title>
<script src="js/jquery-1.8.2.min.js"></script> </head>
<body>
<div><input type="text" id="numText" /></div>
<div>
<input type="button" value='0' class="num0 num numSZ" />
<input type="button" value='1' class="num1 num numSZ" />
<input type="button" value='2' class="num2 num numSZ" />
<input type="button" value='3' class="num3 num numSZ" />
<input type="button" value='4' class="num4 num numSZ" />
<input type="button" value='5' class="num5 num numSZ" />
<input type="button" value='6' class="num6 num numSZ" />
<input type="button" value='7' class="num7 num numSZ" />
<input type="button" value='8' class="num8 num numSZ" />
<input type="button" value='9' class="num9 num numSZ" />
<input type="button" value='.' class="numP num numSZ" />
</div>
<div>
<input type="button" value='+' class="numJA numYS num" />
<input type="button" value='-' class="numJian numYS num" />
<input type="button" value='*' class="numCh numYS num" />
<input type="button" value='/' class="numChu numYS num" />
<input type="button" value='=' class="numEq num" />
<input type="button" value='C' class="numClear num" />
</div>
</body>
<script type="text/javascript">
$(function(){
$(".numYS").click(function(){//运算符操作
setFh($(this).val());
}); $(".numEq").click(function(){//运算符操作
setFh("");
}); $(".numClear").click(function(){
$("#numText").val(0)
})
$(".numSZ").click(function(){//单击数字执行方法
var nowVal=$("#numText").val();
if(nowVal>0){
if(nowVal.indexOf(".")!=-1&&$(this).val()=="."){nowVal=nowVal;}
else{nowVal=nowVal+""+$(this).val()+"";}
}
else{
if(nowVal==null||nowVal==""){
if($(this).val()=="."){nowVal=0;}
else if(nowVal==0){
if($(this).val()==0){nowVal=0;}
else{nowVal=$(this).val();}
}
}
else{ if(nowVal==0&&$(this).val()=="0"&&nowVal.indexOf(".")==-1){nowVal=0;}
else{
if($(this).val()=="."&&nowVal.indexOf(".")!=-1){
if(setFh("hasPat")[1].indexOf(".")!=-1){nowVal=nowVal;}
else{
if(setFh("hasPat")[1]==""||setFh("hasPat")[1]==null){nowVal=nowVal+"0.";}
else{nowVal=nowVal+$(this).val();}
}
}
else{
if(nowVal==0&&$(this).val()!="."){
if(nowVal.indexOf(".")!=-1){nowVal="0."+$(this).val();}
else{nowVal=$(this).val();}
}
else{ if(setFh("hasPat")[1].indexOf(".")!=-1){
nowVal=nowVal+""+$(this).val()+"";
}
else{
if(setFh("hasPat")[1]>0){nowVal=nowVal+""+$(this).val()+"";}
else{
if(setFh("hasPat")[1].indexOf("0")!=-1){
if($(this).val()==0){nowVal=nowVal;}
else{
if(setFh("hasPat")[1]==0&&$(this).val()!="."){
nowVal=setFh("hasPat")[0]+setFh("Fh")+$(this).val();
}
else{
nowVal=nowVal+"0.";
} }
}
else{
if($(this).val()!="."){
nowVal=nowVal+""+$(this).val()+"";
}
else{nowVal=nowVal+"0."}
}
}
}
}
}
}
}
}
$("#numText").val(nowVal)
}); function setYs(strFh,thisVal){//输入=运算符方法
var nowVal=$("#numText").val();
var str=nowVal.split(strFh); var strEnd=str[1]; if(strEnd==null||strEnd==""){
$("#numText").val(str[0]+""+thisVal+"");
}
else{
$("#numText").val(eval(str[0]+strFh+str[1])+""+thisVal+"");
}
} function setFh(tVal){//输入运算符方法
var nowVal=$("#numText").val();
var strFh="";
var returnStr="11";
if(nowVal>=0){
if(tVal!='hasPat'){
if(nowVal.indexOf(".")!=-1){
var nstr=nowVal.split(".");
if(nstr[1]>0){$("#numText").val(nowVal+""+tVal+"");}
else{$("#numText").val(nstr[0]+""+tVal+"");}
}
else if(tVal!="Fh"){$("#numText").val(nowVal+""+tVal+"");}
}
} else{
if(nowVal.indexOf("+")!=-1){strFh='+';}
else if(nowVal.indexOf("-")!=-1){strFh='-';}
else if(nowVal.indexOf("*")!=-1){strFh='*';}
else if(nowVal.indexOf("/")!=-1){strFh='/';}
var strArr1=nowVal.split(strFh);
if(tVal=='hasPat'){returnStr=strArr1;}
else{
if(tVal=="Fh"){returnStr=strFh;}
else{setYs(strFh,tVal);}
}
} return returnStr;
}
});
</script>
</html>

闲来无事写一个jquery计算器,没有进行封装......的更多相关文章

  1. 如何写一个jquery插件

      本文总结整理一下如何写一个jquery插件?虽然现今各种mvvm框架异常火爆,但是jquery这个陪伴我们成长,给我们带来很多帮助的优秀的库不应该被我们抛弃,写此文章,作为对以往欠下的笔记的补充, ...

  2. 自己写一个 jQuery 插件

    我知道这一天终将会到来,现在,它来了. 需求 开发 SharePoint 的 CSOM 应用时,经常需要在网页上输出一些信息. 这种需求和 alert 的弹窗.F12 的断点查看信息的场景是不一样的: ...

  3. 如何使用jQuery写一个jQuery插件

    jQuery插件其实是前端框架的思维,构成一个框架,个人认为必须满足以下几个基础条件:1. 可重用,2. 兼容性,3. 维护方便,虽说现在有很多比较成熟的前端框架,但是也有部分存在配置麻烦,学习成本大 ...

  4. 自己写一个jQuery垂直滚动栏插件(panel)

    html中原生的滚动栏比較难看,所以有些站点,会自己实现滚动栏,导航站点hao123在一个側栏中,就自己定义了垂直滚动栏,效果比較好看,截图例如以下: watermark/2/text/aHR0cDo ...

  5. 玉渊潭赏樱花有感:从无到有写一个jQuery开源插件

    “玉渊潭公园樱花节”是每年樱花绽放时,都会在玉渊潭公园樱举办樱花节,游客前往玉渊潭公园,可以欣赏到20个品种2000株樱花.2016玉渊潭樱花节时间:3月中旬-4月中旬观赏最佳,2016年3月23日开 ...

  6. 亲手用模块化方式写一个jquery QQ表情插件。

    在回复或是评论的时候,很多时间都需要有回复表情的功能,然后而需要插入QQ表情可以是最常见的. 插件也写多很多个了,这次写插件就下了一个决定.就是使用模块化来开发. 最后在我的源代码中有这样子一段: v ...

  7. 使用java写一个小白计算器

    有点小意思~ package ok; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; ...

  8. 如何写一个Js上传图片插件。

    项目里面需要一个上传图片的插件,找了半天没有找到满意的,算了 不找了,自己写一个吧,顺便复习一下js方面的知识.完成之后效果还不错,当然还要继续优化,源码在最后. 介绍一种常见的js插件的写法 ; ( ...

  9. 通过用jQuery写一个页面,我学到了什么

    概述 前几天面试,hr发来一个测试文件,让我做做看.我一看,其实就是根据PSD需求写一个页面,再加上一些互动效果即可. 刚好我之前学了切图,jquery等知识还没练手过,于是高兴的答应了. 最后花了3 ...

随机推荐

  1. 2019-8-31-asp-dotnet-core-支持客户端上传文件

    title author date CreateTime categories asp dotnet core 支持客户端上传文件 lindexi 2019-08-31 16:55:58 +0800 ...

  2. Python学习之路5☞文件处理

    一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 正趣果上果 Interesting fruit fruit 词:郭婞 曲:陈粒 编曲/混音/和声:燕池 萧: ...

  3. SSH applicationContext.xml import异常

    近期在项目上,遇到了一个问题.在配置applicationContext.xml使用<import>标签引入其他的xml文件时,导致项目启动时过慢.有时还会引起启动异常.后来查到是xml文 ...

  4. 2019-8-31-dotnet-使用-System.CommandLine-写命令行程序

    title author date CreateTime categories dotnet 使用 System.CommandLine 写命令行程序 lindexi 2019-08-31 16:55 ...

  5. 【uml】之用例图中的关系 标签: uml图形 2014-11-23 11:10 1422人阅读 评论(29)

    用例图显示谁是相关的用户,用户希望系统提供什么样的服务(用例),用例之间的关系图,用例图主要的作用是获取需求.指导测试.所以,用例图是站在用户的角度来画的图,应该体现的是用户想要的功能,并不需要体现如 ...

  6. innerHTML属性的内存和性能问题

    使用innerHTML替换子节点可能会导致浏览器的内存占用问题,尤其是在IE中,问题更加明显.在删除带有时间处理程序或引用了其他js对象子树是,就有可能导致内存占用问题.假设某个元素有一个事件处理程序 ...

  7. AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】

    AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...

  8. 洛谷P1510 精卫填海

    //01背包 求背包内物品价值超过某一定值时的最小体积 #include<bits/stdc++.h> using namespace std; ; ; int n,v_tot,w_tot ...

  9. part10.3-字符驱动访问揭秘

  10. 利用伪类选择器与better-scroll的on事件所完成的上拉加载

    之前给大家分享过一篇上拉加载 利用了better-scroll的pullUpDown 和DOM元素的删除添加  感觉那样不太好 今天给大家分享一个不同的上拉加载思想 代码如下 class List { ...