我是一个完整的Javascript新手,我正帮助我的朋友参加一个小型项目上大学。
这个想法是,当选中一个复选框时,选择一个项目,然后选择一个" total"按下按钮,打印已检查项目的总和。我一直在使用if / else语句,所以如果选中var staticprice = 29.00
和其他var staticprice = 0.00
,这似乎可以正常工作,直到我完成它为止。添加变量" staticprice"始终返回值0.00,即使选中也是如此。
它非常混乱(这是我第一次尝试创建这样的东西):http://jsfiddle.net/mNmQs/180/
我在这里缺少什么?
干杯
答案 0 :(得分:3)
为了让生活更轻松,请为您的复选框添加value
,这就是它的用途!我已更新您的小提琴,以便为每个复选框添加适当的值。接下来是循环,只需循环复选框,如果选中,则将已检查输入的value
添加到总计:
var totalBtn = document.getElementById("total"),
checkboxes = document.getElementsByTagName("input");
totalBtn.onclick = function() {
var total = 0;
for (var i = 0; i < checkboxes.length; i++) {
if (checkboxes[i].checked) {
total = total + parseInt(checkboxes[i].value);
}
}
alert(total);
}
答案 1 :(得分:2)
您可以更改此行:
this.grandTotal= +seaprice + +stillprice + +staticprice;
要:
grandTotal= parseInt(seaprice,10) + parseInt(stillprice,10) + parseInt(staticprice,10);
在这种情况下,问题是你试图对字符串求和而不是数字
<强> JSFiddle example 强>
HOWEVER 在这种情况下似乎没有必要将您的价格声明为字符串。 当然,除非您希望以0.00
格式显示价格,否则只需将其声明为数字,这应该更好,例如:var seaprice = 39.00;
或{{1}而不是var seaprice = 39.00;
<强> Other fiddle 强>