【问题标题】:Javascript, variables and if/else statementsJavascript、变量和 if/else 语句
【发布时间】:2014-05-13 17:10:13
【问题描述】:

我是一个完整的 Javascript 新手,我正在帮助我的朋友完成一个大学小项目。

这个想法是,当一个复选框被选中时,一个项目被选中,然后当一个“总计”按钮被按下时,被选中的项目的总和被打印出来。我一直在使用 if/else 语句,所以如果检查了 var staticprice = 29.00 和 else var staticprice = 0.00,在我总计之前似乎工作正常。添加变量“staticprice”始终返回值 0.00,即使选中。

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

我在这里错过了什么?

干杯

【问题讨论】:

  • -1 因为用“Javascript、变量和 if/else 语句”搜索 SO 会给我 1'840 个结果!!
  • 抱歉。这是我第一次来这里。

标签: javascript variables if-statement


【解决方案1】:

让生活更轻松的几件事,给你的复选框一个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/

【讨论】:

  • 略微更新的演示:jsfiddle.net/mNmQs/182 展示如何以与原始问题相同的方式呈现 int 总计
  • 感谢这些cmets!你真的帮了我大忙!我将两者合并以获得它,这正是我想要的! jsfiddle.net/mNmQs/185
【解决方案2】:

你可以改变这一行:

this.grandTotal= +seaprice + +stillprice + +staticprice; 

收件人:

grandTotal= parseInt(seaprice,10) + parseInt(stillprice,10) + parseInt(staticprice,10); 

在这种情况下,问题在于您尝试对字符串而不是数字求和

JSFiddle example

但是在这种情况下,将您的价格声明为字符串似乎没有意义。 当然,除非您想以 0.00 的格式显示价格,否则只需将它们声明为数字,这样会更好,例如:var seaprice = 39.00; 或 var seaprice = 39.00; 而不是 var seaprice = "39.00";

Other fiddle

【讨论】:

  • 将它们声明为整数而不是解析它们不是更有意义吗?
  • @ElatedOwl 这更有意义,除非 OP 想要显示像 X.XX 这样的价格,而不仅仅是 X...
猜你喜欢
  • 2018-01-09
  • 2014-03-05
  • 2021-09-11
  • 2016-06-21
  • 1970-01-01
  • 2015-05-16
  • 2018-05-09
  • 2014-03-21
  • 2021-09-14
相关资源
最近更新 更多