我正在开发具有本地存储空间的购物车,我声明了本地存储空间var cart = {}; cart.products = []; localStorage.setItem('cart', JSON.stringify(cart));
并从具有onclick()
事件上的产品详细信息的数据数组中添加具有AJAX的产品
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");
对象结果lik{"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"
},
]
}
最佳答案
var retrievedData = localStorage.getItem("cart");
retrievedData
是包含JSON的字符串。您必须先使用JSON.parse
解析它以获得对象。然后,您可以按照Access / process (nested) objects, arrays or JSON中提到的技术遍历数据结构。
关于javascript - 在JavaScript中循环本地存储对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39663940/