【发布时间】:2019-03-14 03:41:32
【问题描述】:
在此处查看代码笔
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。
【问题讨论】:
-
在进行数学运算之前记录所有值。我敢打赌,它们并非都是数字。由于最终输出是使用
split的输出 - 我的钱是split是一个空字符串或 null -
document.getElementsByName->document.getElementById -
我同意@tymeJV,一个很好的做法是慢慢添加内容并随时记录。确保您使用数字的一个提示是使用
console.log(typeof variable);。这将记录您正在使用的数据类型。console.log(typeof "1"); // logs string,而console.log(typeof 1); // logs number
标签: javascript