-1

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

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

但是当我在脚本中使用这 3 次时,这三个中的一个将不起作用。

其他 2 次我使用 + insted 的 *。

谁能帮我解决?谢谢

4

1 回答 1

1

您的主要问题是您不断地重新定义变量,并且在某些情况下杀死了预期的范围。一旦你var一个变量不要再做一次。例如,您有:

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

这里的问题是您正在重新定义成本,因此它的范围在 if/else 块内。然后,当您分配costfare您时,实际上只是设置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)等。如果它一次只显示一个选项,则上述操作将起作用。

于 2013-06-25T20:02:34.713 回答