本地存储3个对象
这个问题在这里已经有了答案:
不,你不能。 localStorage
(和sessionStorage
)只能存储键值对,其中值只能是字符串。
你可以做的最好的事情是存储简单的对象,使用一些序列化算法。 JSON是最常见的,因此您可以使用JSON.stringify
将对象转换为字符串,将JSON.parse
转换回对象 - 这不会是“相同”(即对相同数据的引用) ,但有一些相同的东西
这意味着发生这种情况:
var a = {value: 5},
j = JSON.stringify(a);
var b = a,
c = JSON.parse(j);
a.value = 7;
b.value; // 7
c.value; // 5
但是,无论如何,这不适用于DOM元素。 他们不能存储,期限。 就像其他任何不是Object
类的其他对象一样,除非它们提供了一个toJSON
方法,可以将它们可靠地转换为字符串,最终可以将其解析回来。
toJSON
方法在内部由JSON.stringify
用来将对象转换为字符串。
例如, Date
对象提供了toJSON
方法。 您可以使用Date.parse
将字符串转换回来:
var d = new Date(),
j = d.toJSON(); // e.g. "2014-02-22T10:35:41.579Z"
var o = new Date(Date.parse(j));
o.getTime() === d.getTime(); // true
o === d; // false
(请记住,JSON本身不支持IE7及更低版本。)
尽管如此,你不能对DOM元素做同样的事情,所以2和3是不可行的。
不久,没有。 您只能存储类型字符串的键/值。
但是,您必须查看:在HTML5 localStorage中存储对象
他们通过对对象进行字符串化来解释解决方法。
CMS报价(接受答案):
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
console.log('retrievedObject: ', JSON.parse(retrievedObject));
链接地址: http://www.djcxy.com/p/27939.html