刷新后重置本地存储值

新手上路,请多包涵

我想要一个数组(也转换为 localStorage 值)框,其中每次将“#textInput”的值添加到 localStorage,但是在刷新并输入新值后,新值不会添加到 localStorage,但取而代之。我相信这是因为刷新数据后 users[] 设置为 null,但不知道如何修复

var users = new Array();
var valueChanger = 1;

alert(localStorage.getItem('usernames'));

function addValue() {
  var newUser = $('#textInput').val();
  users.push(newUser);
  localStorage.setItem('usernames', users);
  alert(localStorage.getItem('usernames'));
}

原文由 igetstuckalot 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 526
1 个回答

您必须像下面这样重写代码才能使其正常工作,

 var users = JSON.parse(localStorage.getItem('usernames')) || [];
var valueChanger = 1;

alert(localStorage.getItem('usernames'));

function addValue() {
  users.push($('#textInput').val());
  localStorage.setItem('usernames', JSON.stringify(users));
  alert(localStorage.getItem('usernames'));
}

Since localStorage only stores string , we need to stringify the array before storing and Parse it before reading.

原文由 Rajaprabhu Aravindasamy 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题