我创建了一个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

09-25 19:24