我使用以下内容将对象存储在本地存储中:
localStorage.setItem('obj', JSON.stringify(obj));
我想每秒添加一个obj的多个实例,给出一个时间键。我怎样才能追加obj而不是每次都改变它?
答案 0 :(得分:11)
var oldItems = JSON.parse(localStorage.getItem('itemsArray')) || [];
var newItem =
{
'product-name': itemContainer.find('h2.product-name a').text(),
'product-image': itemContainer.find('div.product-image img').attr('src'),
'product-price': itemContainer.find('span.product-price').text()
};
oldItems.push(newItem);
localStorage.setItem('itemsArray', JSON.stringify(oldItems));
您可能还需要考虑使用对象而不是数组,并使用产品名称作为键。这样可以防止在LocalStorage中显示重复的条目。
答案 1 :(得分:3)
有两种选择:
getItem
,然后按下/设置新元素,然后使用setItem
。localStorage.setItem('obj:' + x.time, x)
)和使用for (x in localStorage) {...}
来存储对象以查找所有键。答案 2 :(得分:3)
function store()
{
var person=new Object();
str = [str stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";
localStorage.setObj("temp", person);
var obj=localStorage.getObj("temp");
for(var i in obj)
alert(i+"--"+obj[i]);
}
Storage.prototype.setObj = function(key, obj) {
return this.setItem(key, JSON.stringify(obj))
}
Storage.prototype.getObj = function(key) {
return JSON.parse(this.getItem(key))
}
答案 3 :(得分:1)
基本上你必须检索对象,添加你的值,然后把它写回localStorage
。
var obj = JSON.parse( localStorage.getItem('obj') ) || {};
obj[ timestamp ] = 'newvalue';
localStorage.setItem('obj', JSON.stringify(obj));