如何从LocalStorage读取数据

时间:2019-01-28 18:12:01

标签: javascript local-storage

一旦复选框处于活动状态,就会有各种<p>标记获得类“结果” 。我对他们的操作如下:

function submit(){
  alert("in submit");
  var user_choice = document.getElementsByClassName("result");
  for (var i = 0; i < user_choice.length; i++){
    console.log(user_choice[i].innerHTML);
  }
  localStorage.setItem('storage',user_choice);
}

我希望这会产生一个HTMLcollection。之后,在submitted.html页面(按提交按钮后重定向到该页面),我想console.log所有项目。所以我这样写:

window.onload = function() {
  if ( localStorage.getItem('storage')) {
    var got_user_choice = localStorage.getItem('storage');
    for (var i = 0; i < got_user_choice.length; i++){
      console.log(got_user_choice[i].innerHTML);
    }
 }
}

只要它是HTMLcollection(读取数组),我就可以使用数组进行操作。但是我在控制台中得到的只是undefined。我的代码有什么问题?

1 个答案:

答案 0 :(得分:4)

本地存储只能包含字符串,不能包含DOM元素。您应该对所有元素进行数组处理,然后将其转换为JSON。

function submit(){
  alert("in submit");
  var user_choice = document.getElementsByClassName("result");
  var html = [];
  for (var i = 0; i < user_choice.length; i++){
    console.log(user_choice[i].innerHTML);
    html.push(user_choice[i].innerHTML);
  }
  localStorage.setItem('storage',JSON.stringify(html));
}