javascript - tip calc equation 在第一个输出上工作,但在第二个输出上使用 number() 返回 NaN

标签 javascript

在这里查看codepen

https://codepen.io/jimandrews89/pen/zbpRdm

document.getElementById('container').onchange = function() {
  var bill = Number(document.getElementById('billTotal').value);
  var tipPercent = Number(document.querySelector('input[name = "tip"]:checked').value);
  var split = Number(document.getElementsByName('number-of-people').value);
  var tipTotal = bill * tipPercent;
  var finalTotal = (bill + tipTotal) / split;

document.getElementById('newTipTotal').innerHTML = tipTotal;
document.getElementById('newTotalWithTip').innerHTML = finalTotal;}

最后的输出应该计算账单+小费除以支付的人数。第一个输出没有损坏,所以我不知道为什么第二个输出是。起初,我想到使用 parseInt() 而不是 Number() 将字符串转换为数字,但这也使第一个输出也为 NaN。

最佳答案

您有 document.getElementsByName 而不是 document.getElementById,这就是为什么您的拆分值为 Nan。我已将更正后的代码放在下面。上面提供的链接上的测试代码。

document.getElementById('container').onchange = function() {
  var bill = Number(document.getElementById('billTotal').value);
  var tipPercent = Number(document.querySelector('input[name = "tip"]:checked').value);
  var split = Number(document.getElementById('number-of-people').value);
  var tipTotal = bill * tipPercent;
  var finalTotal = (bill + tipTotal) / split;

document.getElementById('newTipTotal').innerHTML = tipTotal;
document.getElementById('newTotalWithTip').innerHTML = finalTotal;

}

关于javascript - tip calc equation 在第一个输出上工作,但在第二个输出上使用 number() 返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55149395/

相关文章:

javascript - 在调用 servlet 的 jsp 上进行单独的 ajax 调用

javascript - Youtube iframe api a.u() 不是函数

javascript - 我可以画出盒子,但无法将其移除! ( Canvas )

javascript - 遍历 javascript 对象 - 第二部分

javascript - 如何扩展 Sequelize 模型

JavaScript 倒计时日期

javascript - 在 JavaScript 中解密 AES

javascript - 从 javascript 调用另一个脚本函数

javascript - 根据其他属性查询多维数组属性

javascript - 对 $scope 数组的引用未在 angularjs 中更新