无法从localstorage

时间:2017-07-11 11:35:15

标签: javascript jquery local-storage

我遇到了关于本地存储获取和设置的障碍。

场景:我从表单元素插入数据并将其缓存在对象中,并将此对象推入数组中。所以每次我将数据输入表单元素时,这些数据都存储在一个对象中,并且该对象被推送到一个数组中。在数组userAry.push(newUser)中推送对象后。

我在localstorage中有setItem数组

localStorage.setItem('userDataStore',JSON.stringify(userAry))

内部document.ready我有

$('#getResult').html(localStorage.getItem('userDataStore'))

问题:

document.ready内,$('#getResult').html(sessionStorage.getItem('userDataStore'))未显示数组。相反,它只显示最近添加的数据。

如果我连续两次填写表格,那么在页面刷新之后它会显示这两个数据。但是,如果我添加另一个数据并刷新页面,它应显示3个数据,而不是显示最近添加的数据。

代码:

var newUser = {
  userName : username,
  userPhno : userphno,
  userEmail : useremail,
  userPass : userpass,
  userConfirmpass : userconfirmpass,
}

userAry.push(newUser);  

localStorage.setItem('userDataStore',JSON.stringify(userAry));

内部document.ready我有

$('#getResult').html(sessionStorage.getItem('userDataStore'));

3 个答案:

答案 0 :(得分:0)

在文档就绪时,您也应该设置变量userAry。不仅填充HTML内容。然后,当你推送一个新项目时,它会将它添加到已经创建的其他项目,然后当你存储数组时,你不仅存储新添加的用户

userAry = sessionStorage.getItem('userDataStore');
$("#getResult").html(userAry);

答案 1 :(得分:0)

在您的代码中,将此行localStorage.setItem('userDataStore',JSON.stringify(userAry));替换为sessionStorage.setItem('userDataStore',JSON.stringify(userAry));

在下面的代码中查看如何从sessionStorage获取,设置和删除数据。

例如:

// Save data to sessionStorage
sessionStorage.setItem('key', 'value');

// Get saved data from sessionStorage
var data = sessionStorage.getItem('key');

// Remove saved data from sessionStorage
sessionStorage.removeItem('key');

// Remove all saved data from sessionStorage
sessionStorage.clear();

答案 2 :(得分:0)

@NoviceCoder,要使用本地存储,您可以在scenerio下面尝试。

response = ['A', 'B', 'C', 'D'];
localStorage.setItem("marketPlaceNames", JSON.stringify(response)) // to set value
JSON.parse(localStorage.getItem("marketPlaceNames")) // to get value