11月27日更新
使用 switch
語句代替 if
語句,使邏輯更清晰,代碼更新部分如下:
//switch語句
switch (values) {
case "Ans":
break;
case "=":
rel = eval(txt.join(""));
prt.value = rel;
txt = [];
txt.push(rel);
break;
case "AC":
prt.value = [];
txt = [];
break;
case "CE":
txt.pop();
prt.value = txt.join("");
break;
default:
txt.push(values);
prt.value = txt.join("");
};
原文如下
功能1: 可以對兩個數字進行加、減、乘、除的運算.
功能2: 可以使用清除按鈕清空當前的所有輸入內容.
功能3: 可以把多個運算連接起來操作, 直到按下等號鍵, 計算器輸出正確的運算結果.
由于我對原生js有一種迷之熱愛(微笑.jpg),所以沒用JQuery。
css很簡單,但是沒仔細做,自適應也沒寫。
思路:
給每個按鈕一個Value,然后js獲取點擊按鈕value。新建一個空的數組,每次獲取點擊的value之后push進去,然后用arr.join("")
轉換為字符串,并賦值給input的value就可以顯示了。這里有一點,input設置為readonly
。
當value == "="
時,用到eval()
函數。
eval() 將一個JavaScript代碼字符串求值成特定的對象。
這個函數難點在于AC和CE。AC是清除所有輸入,很簡單,直接另數組=[]。
CE的話可以用arr.pop()
,該方法用于刪除數組中最后一個元素。
總體js代碼
var values;
var txt = [];
var prt = document.getElementById("prt");
var rel;
function getValues() {
var btns = document.getElementsByTagName("button");
for (var i = 0; i < btns.length; i++) {
btns[i].onclick = function() {
values = this.value;
if (values != "Ans") {
if (values == "=") {
rel = eval(txt.join(""));
console.log(rel);
prt.value = rel;
txt = [];
txt.push(rel);
} else if (values == "AC") {
prt.value = [];
txt = [];
} else if (values == "CE") {
txt.pop();
prt.value = txt.join("");
} else {
txt.push(values);
prt.value = txt.join("");
};
};
console.log(txt);
};
};
};
window.onload = getValues;