JS 计算器
2017-02-22 16:04
162 查看
<div id="warp">
<p> By- FireBird_one </p>
<input class="f-text" type="text" readonly = "readonly" maxlength="9" value="0"/>
<ul class="clearfix">
<li class="btu-1"><a href="javascript:;">c</a></li>
<li class="btu-1"><a href="javascript:;">%</a></li>
<li class="btu-1"><a href="javascript:;">÷</a></li>
<li class="btu-1"><a href="javascript:;">×</a></li>
<li><a href="javascript:;">7</a></li>
<li><a href="javascript:;">8</a></li>
<li><a href="javascript:;">9</a></li>
<li class="btu-1"><a href="javascript:;">-</a></li>
<li><a href="javascript:;">4</a></li>
<li><a href="javascript:;">5</a></li>
<li><a href="javascript:;">6</a></li>
<li class="btu-1"><a href="javascript:;">+</a></li>
<li><a href="javascript:;">1</a></li>
<li><a href="javascript:;">2</a></li>
<li><a href="javascript:;">3</a></li>
<li class="btu-2"><a href="javascript:;">=</a></li>
<li class="btu-3"><a href="javascript:;">0</a></li>
<li><a href="javascript:;">.</a></li>
</ul>
<input id="formula" type="text" readonly value="">
</div>
window.onload = function(){
var warp = document.getElementById("warp");
var aA = warp.getElementsByTagName("a");
var aInput = warp.getElementsByTagName("input")[0];
var oFormula = document.getElementById("formula");
var s = false;
var i = 0;
for (i = 0; i < aA.length; i++){
aA[i].onclick = function ()
{
switch(this.innerHTML)
{
case "c":
aInput.value = 0;
oFormula.value = "";
break;
case "%":
count("%")
break;
case "÷":
count("/")
break;
case "×":
count("*")
break;
case "-":
count("-")
break;
case "+":
count("+")
break;
case "=":
s || (oFormula.value += aInput.value);
aInput.value = eval(oFormula.value.replace(/\%\/\*\-\+/,''));
aInput.value = aInput.value.substr(0,10).replace("NaN",0);
s = true;
break;
case ".":
if(aInput.value.search(/[\.\%\/\*\-\+]/) != -1)
break;
default:
s && (aInput.value = 0, oFormula.value = "", s = false);
aInput.value.length < 10 && (aInput.value = (aInput.value + this.innerHTML).replace(/^[0\%\/\*\-\+](\d)/,"$1"));
}
}
}
function count(a)
{
if(s)
{
oFormula.value = aInput.value + a;
aInput.value = a;
s = false;
}
else
{
/[\%\/\*\-\+]$/.test(aInput.value) || (oFormula.value += aInput.value);
aInput.value = a;
/[\%\/\*\-\+]$/.test(oFormula.value) || (oFormula.value += aInput.value);
oFormula.value = oFormula.value.slice(-1) != a ? oFormula.value.replace(/.$/,a) : oFormula.value
}
}
};