我正在创建一个模拟购物车,我在更新购物车的功能方面遇到了一些麻烦。当用户向购物车添加内容时,项目名称和所需的数量会存储在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>
sessionStorage对象
{
"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);
}
}
似乎无法获得总额/总额。帮助
答案 0 :(得分:2)
就是这一行:
sumtotal = parseFloat( sumtotal + item.total );
应该是:
sumtotal += parseFloat( item.total );
现在,您只获得item.total
的最后一个值。
答案 1 :(得分:1)
我认为这不是你应该如何使用sessionStorage。相反,您需要创建一个对象 - 例如,称为订单 - 将托管您的数字:
var storage=JSON.parse(sessionStorage.getItem("order"));
请参阅live demo。