为什么我的函数输出0(零)?

时间:2016-04-16 23:48:49

标签: javascript function

此代码应该通过乘以它们来计算两个用户输入。但是,输出始终为0而不是通常预期的输出,即5 * 5 = 0。我不确定为什么会这样。我没有正确地将变量传递给函数吗?我觉得我可能没有正确理解价值与参考(我目前正在学习javascript)

var x = document.getElementById("a").value;
var y = document.getElementById("b").value;
var button = document.getElementById("button");

button.addEventListener('click', function() {
    calculator(x,y);
}, false);

function calculator(a,b) {
    var output = a * b;
    document.getElementById("answer").innerHTML = output;
    console.log(output);
}

2 个答案:

答案 0 :(得分:2)

省略值捕获,只需抓取元素:

var x = document.getElementById("a");
var y = document.getElementById("b");

然后使用值作为函数参数。

button.addEventListener('click', function() {
  calculator(x.value, y.value);
}, false);

当它们为空时,你抓住这些值并将它们传递给函数。

DEMO

答案 1 :(得分:0)

可能是脚本将值视为字符串,尝试使用parseInt(a)* parseInt(b)