我创建了一个JavaScript计算器,并且所有变量都使用了变量,但无法正常工作。
我尝试使用document.getElementById("box1").value
而不是仅仅使用v1
,但我看到发生了一些变化,如果我键入1111
,我会得到11 + 11
,这是为什么呢?
我不知道这是什么问题,我尝试了一些尝试,但没有任何改变。
这是我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS calculator</title>
</head>
<body>
<input id="box1" type="text" placeholder="Number one" />
<select name="" id="select">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input id="box2" type="text" placeholder="Number two" />
<button onclick="count()">Check</button>
<a id="output"></a>
<script>
var v1 = document.getElementById("box1").value;
var v2 = document.getElementById("box2").value;
var sel = document.getElementById("select").value;
var out = document.getElementById("output").innerHTML;
function count() {
if (sel === "+") {
out = v1 + v2;
}
else if (sel === "-") {
out = v1 - v2;
}
else if (sel === "*") {
out = v1 * v2;
}
else if (sel === "/") {
out = v1 / v2;
}
else {
out = "Error Error Error!"
}
}
</script>
</body>
</html>
谢谢! :)
最佳答案
您的脚本中有3个问题。
首先,您应该在count()函数中获取元素值(因为您希望每次有人单击检查按钮时都读取这些值)。
其次,您不应该读取输出值,而应该写输出值。
第三,必须将输入值强制转换为int以避免类似:1 + 1 = 11。
function count() {
var v1 = parseInt(document.getElementById("box1").value);
var v2 = parseInt(document.getElementById("box2").value);
var sel = document.getElementById("select").value;
var out;
if (sel === "+") {
out = v1 + v2;
} else if (sel === "-") {
out = v1 - v2;
} else if (sel === "*") {
out = v1 * v2;
} else if (sel === "/") {
out = v1 / v2;
} else {
out = "Error Error Error!"
}
document.getElementById("output").innerHTML = out;
}
Here is a fiddle with an example solution