Javascript冲突三次

Javascript冲突三次,javascript,Javascript,我正在使用javascript作为我网站的一部分 var fare = Math.round(fare*100)/100; if(document.getElementById("doubleFare").checked) { fare = fare * 2; } 但是,当我在脚本中使用这三次时,其中一次将不起作用 其他2次我使用+代替* 谁能帮我解决这个问题?谢谢您的主要问题是不断地重新定义变量,在某些情况下会终止预期的范围。一旦你var一个变量,就不要再这样做了。例如,您有: if

我正在使用javascript作为我网站的一部分

var fare = Math.round(fare*100)/100;
if(document.getElementById("doubleFare").checked)
{
   fare = fare * 2;
}
但是,当我在脚本中使用这三次时,其中一次将不起作用

其他2次我使用+代替*


谁能帮我解决这个问题?谢谢

您的主要问题是不断地重新定义变量,在某些情况下会终止预期的范围。一旦你
var
一个变量,就不要再这样做了。例如,您有:

 if (total<40)
 {
     var cost = parseInt(total) * 1.95;
 }
  else
 {
    var cost = parseInt(total) * 1.65;
 }
 var fare = cost;

如果您想以不同的值显示价格,那么您需要为票价和初始成本使用单独的变量,并将
else If
块拆分为
If(check160)
等。如果一次只显示一个选项,则上述选项将起作用。

哪些部分出现故障,您如何确定故障?另外两次你怎么称呼它?您是否每次都用var重新定义
票价
(请注意,您不应该这样做)?在上面的例子中,在作业中使用票价之前,您需要将票价定义为某个值。您的问题中没有任何内容表明任何可解决的问题。请发布您遇到的问题的描述,以及“将不起作用”的含义。在使用前您是否定义了票价?var票价=数学轮(票价*100)/100;我会回来的。一旦定义了它,你就可以避免用var重新定义它,除非你打算在另一个函数中重新定义它的作用域,而imho是一个糟糕的形式。一是票价翻倍的代码。一个复选框将在总票价中添加额外价格。但我不能同时使用它们。输出仅显示不带复选框的总价。当我删除其中一个代码时,它工作得很好。你能做一个小提琴来显示你在做什么吗?这里没有足够的信息来说明发生了什么。谢谢。但我还想在双倍票价和其他价格下添加一个if(总数<40)。如何做到这一点?你对其他价格是什么意思?现在它是标准的,40以下为*1.65,40以上为*1.95。没关系,但我想添加另外两个复选框:*1.50和*1.60。因此,当勾选其他价格时,将显示我在回答中添加了一个可能的复选框的检查,并给出了一个注释,说明如果你想全部显示它们,该怎么做。谢谢,但我想要的是计算器的4种不同价格。当人们点击复选框1时,它必须是2个价格。当他们点击复选框2时,2其他价格。一个价格高于40,另一个价格低于40。
/* code to get check box that indicates prices for 1.50 and 1.60 */
    var check150 = document.getElementById("yourCheckIdFor150").checked ? true : false;
    var check160 = document.getElementById("yourCheckIdFor160").checked ? true : false;
    var cost = parseInt(total) * 1.65;
    if(total < 40 && !check150 && !check160)
    {
        cost = parseInt(total) * 1.95;
    }else if(check150 && !check160)
    {
        cost = parseInt(total) * 1.50;
    }else if(!check150 && check160)
    {
        cost = parseInt(total) * 1.60;
    }

    var fare = cost;    
    fare = Math.round(fare*100)/100;
    if(document.getElementById("doubleFare").checked)
    {
        fare = fare * 2;
    }