我一直在用JavaScript编写一个非常简单的计算器。基本上,你输入两个值,选择你的计算方法,然后点击go,它会输出一个值。这是一个JSfiddle,我展示了这个概念:
奇怪的是,在我的浏览器中它确实运行计算,但只有添加,无论我选择什么。在JSfiddle中,它甚至没有运行计算。我认为问题可能出在我的If,ElseIf声明中,但我不知道在哪里或为什么。我现在所拥有的是:
function calculateTotal() {
var value1 = document.getElementsByName('value1')[0].value;
var value2 = document.getElementsByName('value2')[0].value;
var calcMethod = document.getElementsByName('calculationType')[0].value;
var out;
if (calcMethod = 'add')
{
out = parseFloat(value1) + parseFloat(value2);
}
else if (calcMethod = 'subtract')
{
out = parsefloat(value1) - parsefloat(value2);
}
else if (calcMethod = 'multiply')
{
out = parsefloat(value1) * parsefloat(value2);
}
else if (calcMethod = 'divide')
{
out = parsefloat(value1) / parsefloat(value2);
}
document.getElementsByName('total')[0].value= out;
}
这样做需要我的HTML中选择值指定的名称,这里:
<select name="calculationType">
<option value="add">+</option>
<option value="subtract">-</option>
<option value="multiply">*</option>
<option value="divide">/</option>
</select><br>
并将值赋给变量calcMethod。然后检查选择了哪些值,以确定要计算的数学类型。我已使用Chrome中的控制台对此进行了检查,并且值已正确分配。当我选择除法时,calcMethod确实等于划分&#39;在运行时,但它仍然添加,或在JSfiddle的情况下什么都不做。
答案 0 :(得分:4)
使用===
而非=
===
是比较,=
是作业。
忘记==
存在。