2016-05-16 60 views
0

我不能真正解釋我的問題,但我想在我的網站上創建一個總計美元。 我想將數量乘以大小。乘以JS不工作

function total(){ 
       var x = document.getElementById("size").selectedIndex; 
       var y = document.getElementById("price"); 
       var z = document.getElementById("price2"); 
     var z = document.getElementById("quantity").value; 
       if ((document.getElementsByTagName("option")[x].value) == "XS") { 
        y.innerHTML="$"."10.00"*"a"; 
        z.value="$"."10.00"*"a"; 
       } 
       else if ((document.getElementsByTagName("option")[x].value) == "S") { 
        y.innerHTML="$"."12.00"*"a"; 
        z.value="$"."12.00"*"a"; 
       } 
       else if ((document.getElementsByTagName("option")[x].value) == "M") { 
        y.innerHTML="$"."13.00"*"a"; 
        z.value="$"."13.50"*"a"; 
       } 
       else if ((document.getElementsByTagName("option")[x].value) == "L") { 
        y.innerHTML="$"."15.00"*"a"; 
        z.value="$"."15.00"*"a"; 
       } 
       else if ((document.getElementsByTagName("option")[x].value) == "XL") { 
        y.innerHTML="$"."20.00"*"a"; 
        z.value="$"."20.00"*"a"; 
       } 
      }; 

此代碼使程序不能完全工作。

任何幫助表示讚賞,拉克蘭

+1

什麼是錯誤?請儘可能鏈接到jsbin或類似的地方。 – rahulroy9202

+0

使用eval函數進行乘法運算。 –

+2

@AkashAmin-no,不要這樣做。 – RobG

回答

4

您還沒有發佈,顯示這一問題的mimial的例子,但有可能的一個問題是,你是如何得到的X值:

var x = document.getElementById("size").selectedIndex; 

可直接獲取的值取代:

var x = document.getElementById("size").value; 

然後,你必須:

if (x == "XS") { 
    ... 
} 
    else if (x == "S") { 
    ... 

等等。但是所有這些if .. else陳述可能會被switch取代。

;那麼,這樣的代碼:

y.innerHTML="$"."10.00"*"a"; 
    z.value="$"."10.00"*"a"; 

我不知道該點是幹什麼用的,也許你正試圖拼接?

y.innerHTML = "$" + (10.00 * a); 
    z.value = "$" + (10.00 * a); 

其中一個是從其他地方的值?如果你想保留兩位小數,則:

y.innerHTML = "$" + (10.00 * a).toFixed(2); 

哦,注意選項可以有一個值是顯示的文字不同,所以你可以做:

<option value="13.50">M</option> 

所以現在你可以刪除的if..else塊,只是有:

y.innerHTML = "$" + (x * a).toFixed(2); 

X將是一個字符串,但multiplicatio n會強迫它成爲一個數字。

+0

對不起,我不是很擅長解釋,我是新來的JavaScript。謝謝,這很有幫助 –