【发布时间】:2016-12-22 13:52:45
【问题描述】:
我使用以下内容将对象存储在本地存储中:
localStorage.setItem('obj', JSON.stringify(obj));
我想每秒添加多个 obj 实例,并给出一个时间键。如何附加 obj 而不是每次都更改它?
【问题讨论】:
我使用以下内容将对象存储在本地存储中:
localStorage.setItem('obj', JSON.stringify(obj));
我想每秒添加多个 obj 实例,并给出一个时间键。如何附加 obj 而不是每次都更改它?
【问题讨论】:
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 中。
【讨论】:
基本上,您必须检索对象,添加您的值,然后将其写回localStorage。
var obj = JSON.parse( localStorage.getItem('obj') ) || {};
obj[ timestamp ] = 'newvalue';
localStorage.setItem('obj', JSON.stringify(obj));
【讨论】:
var obj = JSON.parse( localStorage.getItem('obj') ) || {};,首先从localStorage获取现有项目。
有两种选择:
getItem,然后推送/设置新元素,然后使用setItem。localStorage.setItem('obj:' + x.time, x))并使用for (x in localStorage) {...} 查找所有键。【讨论】:
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))
}
【讨论】: