Javascript,变量和if / else语句

时间:2014-05-13 17:10:13

标签: javascript variables if-statement

我是一个完整的Javascript新手,我正帮助我的朋友参加一个小型项目上大学。

这个想法是,当选中一个复选框时,选择一个项目,然后选择一个" total"按下按钮,打印已检查项目的总和。我一直在使用if / else语句,所以如果选中var staticprice = 29.00和其他var staticprice = 0.00,这似乎可以正常工作,直到我完成它为止。添加变量" staticprice"始终返回值0.00,即使选中也是如此。

它非常混乱(这是我第一次尝试创建这样的东西):http://jsfiddle.net/mNmQs/180/

我在这里缺少什么?

干杯

2 个答案:

答案 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);
}

http://jsfiddle.net/mNmQs/181/

答案 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