javascript - 如何将函数的参数作为数字而不是 "NaN"进行交互/输出?

标签 javascript parameters numbers nan

所以我收到了 javascript 入门类(class)的作业,但我们还没有那么远,所以到目前为止我对这个主题还没有很多知识,但我被困在这部分的任务。作业是制作一个简单的计算器,它能够使用四个基本函数(+、-、*、/),用两个参数调用该函数并输出结果。这是 JavaScript 代码:

"use strict";
var x = document.getElementById('nummer1').value;
var y = document.getElementById('nummer2').value;

function add(p1, p2) {
return Number(p1) + Number(p2);
}

function subtract(p1, p2) {
return p1 - p2;
}

function multiply(p1, p2) {
return p1 * p2;
}

function divide(p1, p2) {
return p1 / p2;
}

现在是 HTML:

<input type="number" name="nr1" id="nummer1">
<input type="number" name="nr2" id="nummer2"><br><br>
<button type="button" onclick="document.getElementById('demo').innerHTML = add(x, y)">Add</button>
<button type="button" onclick="document.getElementById('demo').innerHTML = subtract(x, y)">Subtract</button>
<button type="button" onclick="document.getElementById('demo').innerHTML = multiply(x, y)">Multiply</button>
<button type="button" onclick="document.getElementById('demo').innerHTML = divide(x, y)">Divide</button>
<p>The answer is: <span id="demo"></span></p>

现在的问题是,每次我尝试使用其中一个按钮时,输出结果都是“NaN”。我似乎不明白为什么会这样。我已经这样做了,变量 x 和 y 是用户输入的值,并且我已指定它们是数字。我不会将它们除以零或类似的东西。那他们不应该正常计算吗?我哪里出错了?如果这有什么区别,我通常将 js 代码放在 head 部分。

最佳答案

Now the problem is that everytime I try to use one of the buttons, the output results in "NaN"

因为当您单击这些按钮时,不会获取 xy 的最新值。

成功

function add() {
  var p1 = document.getElementById('nummer1').value;
  var p2 = document.getElementById('nummer2').value;
  return Number(p1) + Number(p2);
}

function subtract(p1, p2) {
  var p1 = document.getElementById('nummer1').value;
  var p2 = document.getElementById('nummer2').value;
  return p1 - p2;
}

function multiply(p1, p2) {
  var p1 = document.getElementById('nummer1').value;
  var p2 = document.getElementById('nummer2').value;
  return p1 * p2;
}

function divide(p1, p2) {
  var p1 = document.getElementById('nummer1').value;
  var p2 = document.getElementById('nummer2').value;
  return p1 / p2;
}
<input type="number" name="nr1" id="nummer1">
<input type="number" name="nr2" id="nummer2"><br><br>
<button type="button" onclick="document.getElementById('demo').innerHTML = add()">Add</button>
<button type="button" onclick="document.getElementById('demo').innerHTML = subtract()">Subtract</button>
<button type="button" onclick="document.getElementById('demo').innerHTML = multiply()">Multiply</button>
<button type="button" onclick="document.getElementById('demo').innerHTML = divide()">Divide</button>
<p>The answer is: <span id="demo"></span></p>

请注意

  • xy 不再从 onclick 处理程序传递

关于javascript - 如何将函数的参数作为数字而不是 "NaN"进行交互/输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49127630/

相关文章:

serialization - XQuery 和 Zorba : Setting the serialization parameters from inside the XQuery document

python - 如何使用python按特定顺序编号圆圈?

javascript - 如何在 JavaScript 中用逗号打印一个数字作为千位分隔符

javascript - C3 条形图 x 轴标签太拥挤

javascript - Angular JS 中的 If 语句 (Ngif)

javascript - 移动时的菜单不会滚动

c - 使用二元运算计算 n 个 1

javascript - jquery中如何结合打印和删除空输入?

c - execvpe argv 需要参数匹配语法帮助

java - 查找当前执行的jar文件名