我想知道是否有人可以帮助我使用本地存储空间。我希望能够将多个用户值存储到本地存储中并单独显示它们,以便它们可以用作按钮/链接。下面是我尝试过的一些代码:
locatArray = new Array();
function save() {
var fieldValue = document.getElementById("input").value;
var locatItem = locatArray.push(fieldValue);
localStorage.setItem("text", JSON.stringify(locatArray));
}
window.onload = function load() {
var storedValue = JSON.parse(localStorage.getItem("text"));
if(storedValue) {
document.getElementById("display").innerHTML = (storedValue);
}
此代码允许用户在密钥中存储多个值。但是,由于它是一个数组,当刷新页面并且用户输入不同的数据时,将覆盖本地存储值。此外,每个值都无法单独访问。
我是使用本地存储的新手,我想知道是否有人可以帮助我。
答案 0 :(得分:0)
您需要更新数据而不是覆盖它。实现一些同步机制,首先从localStorage获取数据,然后再推送新项并再次存储更新,而不是覆盖存储的数据。
如果你想删除一些项目做同样的事情。从localStorage获取数组,只需删除不再需要的项目,然后再将数组存储在localStorage中。
使用您的代码: weather_urls
作为密钥。
这将更新存储在localStorage中的数组
function save() {
var fieldValue = document.getElementById("input").value;
var arrayOfLinks = localStorage.getItem("weather_urls");
if(!arrayOfLinks){
arrayOfLinks = []; // this is better way how to declare array not new Array()
}
arrayOfLinks.push(fieldValue);
localStorage.setItem("weather_urls", arrayOfLinks);
}
window.onload = function load() {
var storedValue = localStorage.getItem("weather_urls");
if(storedValue) {
document.getElementById("display").innerHTML = storedValue;
}