我正在为我的网站的一部分使用 javascript。
var fare = Math.round(fare*100)/100;
if(document.getElementById("doubleFare").checked)
{
fare = fare * 2;
}
但是当我在脚本中使用这 3 次时,这三个中的一个将不起作用。
其他 2 次我使用 + insted 的 *。
谁能帮我解决?谢谢
我正在为我的网站的一部分使用 javascript。
var fare = Math.round(fare*100)/100;
if(document.getElementById("doubleFare").checked)
{
fare = fare * 2;
}
但是当我在脚本中使用这 3 次时,这三个中的一个将不起作用。
其他 2 次我使用 + insted 的 *。
谁能帮我解决?谢谢
您的主要问题是您不断地重新定义变量,并且在某些情况下杀死了预期的范围。一旦你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)
等。如果它一次只显示一个选项,则上述操作将起作用。