Javascript冲突三次

时间:2013-06-25 19:02:31

标签: javascript

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

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

但是当我在剧本中使用这3次时,其中一个将无效。

另外2次我使用+ insted *。

谁能帮我解决?感谢

1 个答案:

答案 0 :(得分:1)

您的主要问题是您不断重新定义变量,并在某些情况下杀死预期的范围。一旦var变量不再执行此操作。例如,你有:

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

这里的问题是您正在重新定义成本,因此它具有if / else块内部的范围。然后,当您将cost分配给fare时,实际上只是将fare设置为未定义,因为它无法在if块之外看到。尝试:

/* 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;
    }

如果您想要显示各种价格的价格,那么您需要为票价和初始成本使用单独的变量,并将else if块拆分为if(check160)等。如果只是一次显示一个选项,以上工作。