0

我正在创建一个模拟购物车,但我在更新购物车的功能上遇到了一些问题。当用户将某些东西添加到购物车时,商品名称和所需数量将存储在一个sessionStorage对象中。该updateCart()函数使用来自该对象的数据。

我正在尝试:
1. 遍历sessionStorage对象并获取项目名称和数量
2. 将数量乘以每个项目的价格
3. 将所有项目总计加起来为一个总计

第三部分很棘手。

HTML

<div id="Burger">6.50</div>
<div id="Cheeseburger">7.50</div>
<div id="Hotdog">4.00</div>

会话存储对象

{
    "Burger" : "2",
    "Cheeseburger" : "3",
    "Hotdog" : "1"
}

JavaScript

function updateCart() {

    var storage = window.sessionStorage;
    var sumtotal = 0;

    for ( var i in storage ) {

        var item = new Object();

        item.name = i;
        item.quantity = parseFloat( storage[i] );
        item.price = parseFloat( $("#" + item.name).text() );
        item.total = item.price * item.quantity;

        sumtotal = parseFloat( sumtotal + item.total );

        console.log(sumtotal);

    }
}

似乎无法使总计/总和起作用。帮助?

4

2 回答 2

2

就是这一行:

sumtotal = parseFloat( sumtotal + item.total );

应该:

sumtotal += parseFloat( item.total );

现在你只得到 的最后一个值item.total

于 2012-11-30T18:54:37.840 回答
1

我认为这不是您应该使用 sessionStorage 的方式。相反,您需要创建一个对象 - 例如称为 order - 将托管您的号码:

var storage=JSON.parse(sessionStorage.getItem("order"));

查看现场演示

于 2012-11-30T19:03:20.003 回答