我正在使用javascript作为我网站的一部分。
var fare = Math.round(fare*100)/100;
if(document.getElementById("doubleFare").checked)
{
fare = fare * 2;
}
但是当我在剧本中使用这3次时,其中一个将无效。
另外2次我使用+ insted *。
谁能帮我解决?感谢
答案 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)
等。如果只是一次显示一个选项,以上工作。