2012-10-16 73 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,但我可以环绕它。感谢这个想法。 –

相关问题