将多个用户输入保存到本地存储中

时间:2015-12-09 20:25:55

标签: javascript html5 storage local

我想知道是否有人可以帮助我使用本地存储空间。我希望能够将多个用户值存储到本地存储中并单独显示它们,以便它们可以用作按钮/链接。下面是我尝试过的一些代码:

    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);
        }

此代码允许用户在密钥中存储多个值。但是,由于它是一个数组,当刷新页面并且用户输入不同的数据时,将覆盖本地存储值。此外,每个值都无法单独访问。

我是使用本地存储的新手,我想知道是否有人可以帮助我。

1 个答案:

答案 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;
    }