我正在开发一个带本地存储的购物车,我声明了本地存储
var cart = {};
cart.products = [];
localStorage.setItem('cart', JSON.stringify(cart));
使用来自数据阵列的AJAX添加产品,其中包含onclick()
事件
var product = {};
product.id = msg.produto.id;
product.name = msg.produto.nome;
product.price = msg.produto.preco;
product.image = msg.produto.name;
addToCart(product);
'addToCart'函数使用.push
var cart = JSON.parse(localStorage.getItem('cart'));
cart.products.push(product);
,我需要在javascript中执行for
或$.each
以获取所有产品详细信息,逐个添加到我的HTML中。
我试过这种方式:
localStorage.setItem('cart', JSON.stringify(cart));
var retrievedData = localStorage.getItem("cart");
$.each(retrievedData , function (i, item) {
alert(item.nome);
alert(item.product.nome);
});
但不起作用......
var retrievedData = localStorage.getItem("cart");
对象结果
{"products":
[
{
"id":"01",
"name":"Product Name 01",
"price":"Product Price 01",
"image":"Product Imagem 01"
},
{
"id":"02",
"name":"Product Name 02",
"price":"Product Price 02",
"image":"Product Imagem 02"
},
]
}
答案 0 :(得分:1)
您期望的localStorage
数据的结果是一个数组,它是" products"的值。返回对象的属性。
出于这个原因,我会尝试:
$.each(retrievedData.products , function (i, item) {
...
});
答案 1 :(得分:0)
var retrievedData = localStorage.getItem("cart");
retrievedData
将是包含JSON的字符串。您必须首先使用JSON.parse
解析它以获取对象。
然后,您可以按照Access / process (nested) objects, arrays or JSON中提到的技术遍历数据结构。
答案 2 :(得分:0)
您可以使用https://github.com/godban/local-storage-parser等实用程序来简化与本地存储的交互