我为我的网站的一部分使用JavaScript。JavaScript冲突三次
var fare = Math.round(fare*100)/100;
if(document.getElementById("doubleFare").checked)
{
fare = fare * 2;
}
但是,当我在脚本中使用这3次,其中一个不起作用。
其他2次我使用+ insted的*。
谁能帮我解决它?谢谢
我为我的网站的一部分使用JavaScript。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
设置为undefined,因为在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)
等。如果只显示上面的一个选项可以工作。
谢谢。但我还想在其他价格的双重贿赂下添加一个if(总计<40)。这个怎么做? – Pnorty6
你对其他价格有什么意义? – scrappedcola
现在它的标准是* 1.65在40以下和* 1.95在40以上。这没关系,但我想添加另外两个复选框:* 1.50和* 1.60。所以当检查时,其他价格将显示 – Pnorty6
哪些部件故障,您如何确定故障?你怎么称呼另外两次?你是否每次都用var重新定义'票价'(注意你不应该)?在上面的例子中,您需要将票价定义为某个值,然后才能在分配中使用它。 – scrappedcola
您的问题中没有任何内容表示任何可解决的问题。请发布您所遇到的问题的表述,以及“什么都行不通”的含义。 –
您是否在使用它之前定义车费? var fare = Math.round(票价* 100)/ 100;将只返回NaN。一旦定义了它,你就可以避免用var重新定义它,除非你打算重新定义另一个不合格的函数。 – scrappedcola