1 <!doctype html>
2 <html>
3 <head>
4 <meta charset="utf-8" />
5 <title>jquery计算器http://www.cnblogs.com/boyzi/</title>
6 <script src="js/jquery-1.8.2.min.js"></script>
7
8
9 </head>
10 <body>
11 <div><input type="text" id="numText" /></div>
12 <div>
13 <input type="button" value='0' class="num0 num numSZ" />
14 <input type="button" value='1' class="num1 num numSZ" />
15 <input type="button" value='2' class="num2 num numSZ" />
16 <input type="button" value='3' class="num3 num numSZ" />
17 <input type="button" value='4' class="num4 num numSZ" />
18 <input type="button" value='5' class="num5 num numSZ" />
19 <input type="button" value='6' class="num6 num numSZ" />
20 <input type="button" value='7' class="num7 num numSZ" />
21 <input type="button" value='8' class="num8 num numSZ" />
22 <input type="button" value='9' class="num9 num numSZ" />
23 <input type="button" value='.' class="numP num numSZ" />
24 </div>
25 <div>
26 <input type="button" value='+' class="numJA numYS num" />
27 <input type="button" value='-' class="numJian numYS num" />
28 <input type="button" value='*' class="numCh numYS num" />
29 <input type="button" value='/' class="numChu numYS num" />
30 <input type="button" value='=' class="numEq num" />
31 <input type="button" value='C' class="numClear num" />
32 </div>
33 </body>
34 <script type="text/javascript">
35 $(function(){
36 $(".numYS").click(function(){//运算符操作
37 setFh($(this).val());
38 });
39
40 $(".numEq").click(function(){//运算符操作
41 setFh("");
42 });
43
44 $(".numClear").click(function(){
45 $("#numText").val(0)
46 })
47 $(".numSZ").click(function(){//单击数字执行方法
48 var nowVal=$("#numText").val();
49 if(nowVal>0){
50 if(nowVal.indexOf(".")!=-1&&$(this).val()=="."){nowVal=nowVal;}
51 else{nowVal=nowVal+""+$(this).val()+"";}
52 }
53 else{
54 if(nowVal==null||nowVal==""){
55 if($(this).val()=="."){nowVal=0;}
56 else if(nowVal==0){
57 if($(this).val()==0){nowVal=0;}
58 else{nowVal=$(this).val();}
59 }
60 }
61 else{
62
63 if(nowVal==0&&$(this).val()=="0"&&nowVal.indexOf(".")==-1){nowVal=0;}
64 else{
65 if($(this).val()=="."&&nowVal.indexOf(".")!=-1){
66 if(setFh("hasPat")[1].indexOf(".")!=-1){nowVal=nowVal;}
67 else{
68 if(setFh("hasPat")[1]==""||setFh("hasPat")[1]==null){nowVal=nowVal+"0.";}
69 else{nowVal=nowVal+$(this).val();}
70 }
71 }
72 else{
73 if(nowVal==0&&$(this).val()!="."){
74 if(nowVal.indexOf(".")!=-1){nowVal="0."+$(this).val();}
75 else{nowVal=$(this).val();}
76 }
77 else{
78
79 if(setFh("hasPat")[1].indexOf(".")!=-1){
80 nowVal=nowVal+""+$(this).val()+"";
81 }
82 else{
83 if(setFh("hasPat")[1]>0){nowVal=nowVal+""+$(this).val()+"";}
84 else{
85 if(setFh("hasPat")[1].indexOf("0")!=-1){
86 if($(this).val()==0){nowVal=nowVal;}
87 else{
88 if(setFh("hasPat")[1]==0&&$(this).val()!="."){
89 nowVal=setFh("hasPat")[0]+setFh("Fh")+$(this).val();
90 }
91 else{
92 nowVal=nowVal+"0.";
93 }
94
95 }
96 }
97 else{
98 if($(this).val()!="."){
99 nowVal=nowVal+""+$(this).val()+"";
100 }
101 else{nowVal=nowVal+"0."}
102 }
103 }
104 }
105 }
106 }
107 }
108 }
109 }
110 $("#numText").val(nowVal)
111 });
112
113
114
115 function setYs(strFh,thisVal){//输入=运算符方法
116 var nowVal=$("#numText").val();
117 var str=nowVal.split(strFh);
118
119 var strEnd=str[1];
120
121 if(strEnd==null||strEnd==""){
122 $("#numText").val(str[0]+""+thisVal+"");
123 }
124 else{
125 $("#numText").val(eval(str[0]+strFh+str[1])+""+thisVal+"");
126 }
127 }
128
129 function setFh(tVal){//输入运算符方法
130 var nowVal=$("#numText").val();
131 var strFh="";
132 var returnStr="11";
133 if(nowVal>=0){
134 if(tVal!='hasPat'){
135 if(nowVal.indexOf(".")!=-1){
136 var nstr=nowVal.split(".");
137 if(nstr[1]>0){$("#numText").val(nowVal+""+tVal+"");}
138 else{$("#numText").val(nstr[0]+""+tVal+"");}
139 }
140 else if(tVal!="Fh"){$("#numText").val(nowVal+""+tVal+"");}
141 }
142 }
143
144 else{
145 if(nowVal.indexOf("+")!=-1){strFh='+';}
146 else if(nowVal.indexOf("-")!=-1){strFh='-';}
147 else if(nowVal.indexOf("*")!=-1){strFh='*';}
148 else if(nowVal.indexOf("/")!=-1){strFh='/';}
149 var strArr1=nowVal.split(strFh);
150 if(tVal=='hasPat'){returnStr=strArr1;}
151 else{
152 if(tVal=="Fh"){returnStr=strFh;}
153 else{setYs(strFh,tVal);}
154 }
155 }
156
157
158 return returnStr;
159 }
160 });
161 </script>
162 </html>