我爲我的網站的一部分使用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