如何在localStorage中存储对象

时间:2018-10-08 12:05:15

标签: javascript jquery json

我有以下代码:

localStorage.setItem("ActiveDataOfpModel", iHandle.find("ul li.pModel.active"));

当我在控制台中检查“ ActiveDataOfpModel”值时,我得到“ [object Object]”。 如何将实际对象存储在“ ActiveDataOfpModel”中并检索其属性。即我想执行以下操作:

var value = localStorage.getItem("ActiveDataOfpModel").attr("data-id")

我确实尝试过

var value = JSON.parse(localStorage.getItem("ActiveDataOfpModel")).attr("data-id")

但不起作用

2 个答案:

答案 0 :(得分:2)

您只能将字符串存储在本地存储中。

您可以使用JSON.stringify(someObject)将简单对象编码为JSON(它们必须仅包含JSON数据类型,例如对象,数字和字符串)作为字符串。

  

var value = JSON.parse(localStorage

…,这是随后将JSON转换回对象的方法。


您的代码iHandle.find("ul li.pModel.active")表示您不是在处理简单的对象。这是我期望返回的DOM元素或类似的元素。

您需要从中提取您关心的数据,将其存储在一个对象中,将其存储在JSON中,然后存储在localstorage中,并编写更多代码以在拉出时将简单数据转换回完整对象数据出来。

答案 1 :(得分:1)

尝试一下:
在保存到LocalStorage之前将其转换为String

localStorage.setItem('key', JSON.stringify(data));

转换回JS对象,从LocalStorage中读取

data = JSON.parse(localStorage.getItem('key');