【问题标题】:Save more than one user input into local storage将多个用户输入保存到本地存储中
【发布时间】:2016-03-15 06:53:29
【问题描述】:

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

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

此代码允许用户在一个键中存储多个值。然而,由于它是一个数组,当页面被刷新并且用户输入不同的数据时,本地存储值被覆盖。此外,不能单独访问每个值。

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

【问题讨论】:

  • 你在玩键/值对,听起来你想在数据库中运行临时表以更好地满足你的需求

标签: javascript html storage local


【解决方案1】:

您需要更新数据而不是覆盖它。实现一些同步机制,首先从 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;
    }

【讨论】:

  • 这个想法是为天气应用程序添加位置。用户将输入一个位置,它将存储在本地存储中,并在用户打开 Web 应用程序时显示在列表中。他们将能够单击列表中的位置以显示天气。如果没有预定义的按钮,我怎么能做到这一点?
  • 您想一次显示所有位置吗?您希望能够根据需要添加、删除位置吗?您只需要天气链接或其他信息吗?
  • 是的,我希望它一次显示所有位置,并允许用户添加和删除位置。我只需要天气链接,不需要其他数据
  • 我已经根据这个讨论改变了我的答案。所以基本上你需要实现某种同步。首先获取值,然后将新值添加到现有值中。删除也是一样。
猜你喜欢
  • 2021-09-29
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多