jquery一起加价

时间:2012-07-25 08:58:44

标签: jquery

上午, 我在使用jQuery添加一些总计时遇到了问题。

我将以下内容传递给...

  • 价格 - 600.00
  • 送货 - 4.05

但是我得到了以下结果......

  

subTotal = 600
  productShipping = 4.05
  orderTotal = 4.05600

 $.each(result, function (index, res) {
                var price = 600.00; //res.productPrice;

                var subTotal = res.itemQty * price;
                var orderTotal = res.productShipping + subTotal;

                new_record = "<tr>" +
                             "<td class=\"totals\">Sub Total</td>" +
                             "<td>£" + subTotal + "</td>" +
                             "</tr>" +
                             "<tr>" +
                             "<td class=\"totals\">Shipping</td>" +
                             "<td>£" + res.productShipping + "</td>" +
                             "</tr>" +
                             "<tr>" +
                             "<td class=\"totals\">Order Total</td>" +
                             "<td>£" + orderTotal + "</td>" +
                             "</tr>";

                $('#orderTotals').append(new_record);

我觉得我的jQuery可能会出现一些问题,但是我可以解决这些问题。有人可以告诉我哪里出错了。

res是我在webservice调用中使用的响应。

非常感谢。

4 个答案:

答案 0 :(得分:5)

+将连接字符串以及将数字相加。当你得到连接时,我们可以假设res.productShipping是一个字符串。

因此在加起来之前将其解析为浮点数:

var orderTotal = parseFloat(res.productShipping) + subTotal;

答案 1 :(得分:1)

当您使用res.productShipping创建parseInt()时,您是否尝试在parsedouble()ordertotal(或类似)中包裹{{1}}?

听起来我觉得它正在尝试将它们作为字符串添加在一起 ​​- 因此将它们连接在一起 - 而不是将数字加在一起。

答案 2 :(得分:1)

试试这个:

var orderTotal = parseFloat(res.productShipping) + parseFloat(subTotal);

答案 3 :(得分:0)

您应该使用parseInt将价格转换为数字,然后执行计算。