JavaScript 计数错误

标签 javascript html

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

关于JavaScript 计数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34711706/

相关文章:

html - Bootstrap 4 - 将品牌置于导航栏中心

c# - 从网站读取特定文本

javascript - 指定要在特定页面上使用的指令的 Controller

javascript - 如何避免 jQuery 调用引发 Firefox 警告?

javascript - Highcharts (Highstocks) - 可点击的标志图像

javascript - Uncaught ReferenceError : process is not defined after upgrading from vue cli v4 to v5

html - 对齐标签和输入标签

javascript - 仅在浏览器(IE)中禁用图像缓存

javascript - 在同一个 jquery 函数中,一行在前面的行之前执行

javascript - 如何根据输入的字母数填充进度条?