【发布时间】:2020-10-27 13:53:19
【问题描述】:
我正在尝试用 javascript 制作一个计算器,但它不工作。当我尝试这样做时,比如说 1 + 1,它给了我 11,这对于所有数字都是一样的,这是我的代码:
var slider1 = document.getElementById("myRange1");
var slider2 = document.getElementById("myRange2");
var output = document.getElementById("output");
var fullEquat = document.getElementById("equation");
var add1 = slider1.value;
var add2 = slider2.value;
output.innerHTML = slider1.value; // Display the default slider value
// Update the current slider value (each time you drag the slider handle)
slider1.oninput = function() {
output.innerHTML = this.value;
}
slider2.oninput = function() {
add1 = slider1.value;
add2 = slider2.value;
equals = add1 + add2;
fullEquat.innerHTML = slider1.value + "+" + slider2.value + "=" + equals;
}
slider1.oninput = function() {
add1 = slider1.value;
add2 = slider2.value;
equals = add1 + add2;
fullEquat.innerHTML = slider1.value + "+" + slider2.value + "=" + equals;
}
.slider {
width: 400px;
display: inline;
}
.equal {
text-align: center;
font-size: 100pt;
margin: 0 0 0 0;
}
<div class="slidecontainer">
<input type="range" min="0" max="1000" value="500" class="slider" id="myRange1">
+
<input type="range" min="0" max="1000" value="500" class="slider" id="myRange2">
</div>
<p class="equal">=</p>
<p id="output" class="output"></p>
<p id="equation" class="equat"> + = </p>
【问题讨论】:
-
尝试
add1 = +slider1.value;或add1 = parseFloat(slider1.value);- 与您获得的所有其他值相同,因为除非您将它们设为数字,否则它们将是字符串..."1" + "1" === "11"在javascript中 -
.value属性始终是字符串,而不是数字。您可以使用Number()将值转换为数字,或者简单地使用+前缀运算符。 -
@Pointy 我如何使用 Number() 我是 javascript 的超级菜鸟
-
你可以这样做
equals = +add1 + +add2; -
@firatozcevahir 更短,谢谢!
标签: javascript html math addition