是否可以做这样的事情:
var id = 1;
var data = {
items: {
id: id,
html: '<p> Hello</p>',
}
};
localStorage.setItem("demoitems", JSON.stringify(data));
他们稍后我想保留data.items的现有值并向其添加一个新数组,如:
var id = 2;
var data = {
items: {
id: id,
html: '<p> Hello 2</p>',
}
};
以便最终结果如下:
var data = {
items: {
id: 1,
html: '<p> Hello 1</p>',
},
items: {
id: 2,
html: '<p> Hello 2</p>',
}
};
然后我可以得到它:
var result = JSON.parse(localStorage.getItem("demoitems"));
$.each(result.items, function(k, v) {
... do loop here
});
我尝试过这样的事情:
var newdata = {
items: {
id: 2,
html: '<p> Hello 2</p>',
}
};
var olddata = JSON.parse(localStorage.getItem("demoitems"));
newdata.push(newdata, olddata);
答案 0 :(得分:0)
您无法推送到对象,而是使用数组。 并且Object中的索引必须是唯一的。
var olddata = [
{
id: 2,
html: '<p> Hello 2</p>'
}
];
localStorage.setItem("demoitems", JSON.stringify(olddata))
var newdata = {
id: 2,
html: '<p> Hello 2</p>'
};
var data = JSON.parse(localStorage.getItem("demoitems"));
data.push(newdata);
localStorage.setItem("demoitems", JSON.stringify(data))
alert( localStorage.getItem("demoitems") );
答案 1 :(得分:0)
首先,您不希望在同一个json对象中有两个相同的键(items
)。你可以做的是,将你的item
对象添加到json对象中的数组
var id = 1;
var data = {
// array of items
items: [{
id: id,
html: '<p> Hello</p>',
}]
};
localStorage.setItem("demoitems", JSON.stringify(data));
然后你可以像这样添加新的items
到数组:
var newitem = {
id: 2,
html: '<p> Hello 2</p>',
};
var olddata = JSON.parse(localStorage.getItem("demoitems"));
olddata["items"].push(newitem);
// store the data
localStorage.setItem("demoitems", JSON.stringify(olddata));