2012-10-16 68 views
0
function totalPrice() 
     { 
     var totalItems = document.getElementsByName("price").length; 
     var total = 0; 
     var rgx = /[^0-9]\x2e$/g; 
     var price; 
     var string_in = document.getElementsByName("price"); 

     for (var x=0; x<totalItems-1; x++){ 

      price = new Number(rgx.exec(string_in[x].text)); 
      parseFloat(total) = parseFloat(total) + parseFloat(price); //This is where the error occurs 
     } 
     document.getElementById("total").innerHTML = ' $' + total; 
     } 

這是我的腳本執行函數,在我的'購物車'中有x個項目。我們必須用Javascript編寫這個函數。沒有PHP。被命名的元素包含123.45美元(或更多數字)形式的價格未捕獲的ReferenceError:賦值'Cart'總計算中的無效左側

回答

4

呃...只需從左側刪除parseFloat()即可。

側記:始終以整數工作,尤其是涉及到金錢。在這種情況下,請在代碼方面以美分爲單位。只需除以100(甚至只是通過字符串函數插入一個小數點)即可顯示以美元爲單位的結果。這將避免浮點不準確。

+0

好的,完成了。現在我收到了一個我並不期待的號碼。我認爲代碼有其他問題。我甚至不知道自己在用正則表達式做什麼,我試圖從價格中刪除$,然後將數字讀作字符串,然後將它們添加到運行總數中。我接近這麼做了嗎? –

+0

可能是因爲你的怪異的正則表達式。你不能像普通人一樣使用'substr'嗎?你不能像普通人一樣使用數字文字而不是「新數字」嗎? –

+0

讓我們從普通人開始,並用我知道你是一個學生取而代之,但這是我寫的。我發現一些看起來可以工作的東西,如果他們允許初學者/白癡標籤,那麼也許這會幫助你理解。無論如何,我想過最初使用substr,但我可以環繞它。感謝這個想法。 –

相關問題