繁体   English   中英

我希望能够存储和显示来自数组和本地存储内部的数据?

[英]i want to be able to store and display data from an array and inside localstorage?

我创建了一段代码来将输入字段中的数据存储到一个空数组中。 在我将数据存储在数组中之后,我希望将这些数据保存在本地存储中。 现在我不熟悉用于保存数组的 localStorage。 但我的观点是我想要的是每次我向数组添加一个新值,并且在我刷新浏览器后,我不想丢失显示在浏览器 window 中的数据,如下例所示,我还希望数据一直显示在浏览器中。

    <body>
    <input type="text" id="name" ><br>
    <input type="submit" id="btn" value="push"><br>
    <p id="para"></p>

<script>
    var btn = document.getElementById("btn");
    var para =document.getElementById("para");
    var list =[];


    btn.onclick=function(){
        var name =document.getElementById("name").value;
        /* list.push(name); */
        var i;

        localStorage.setItem("list",JSON.stringify(list.push(name)));
        JSON.parse(localStorage.getItem("list"));

        for(i=0;i<list.length;i++){
            n=list[i];
        }
        para.innerHTML+=n+"<br>";


    }

</script>
</body>

push()返回数组的新长度 因此,您的代码将数组的长度放入 localStorage 而不是您的数组。 字符串化list本身:

list.push(name);
localStorage.setItem("list",JSON.stringify(list));

此外,如果您在页面加载时需要它,您需要更改初始list的分配

var list;
//use localStorage["list"] or if not set use a new empty array
if(localStorage["list"]){
  list = JSON.parse(localStorage["list"]);
  //if you want to display list on page load
  //otherwise dont need below loop
  for(let i=0;i<list.length;i++){
    n += list[i];
  }
  para.innerHTML = n+"<br>";
} else { 
  list = [];
}

保存数据的部分做得很好,但是关于在加载时检索数据并不完全正确......

您可以将数据存储在变量中,然后运行 function 循环输入该数据并显示它:

var data = JSON.parse(localStorage.getItem("list"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM