【问题标题】:How to store the add and edit values store in local storage in javascript?如何将添加和编辑值存储在javascript的本地存储中?
【发布时间】:2019-09-29 05:25:36
【问题描述】:

我正在创建待办事项列表以显示示例静态数据。如果我单击按钮,示例数据将一一添加到列表中。当我单击删除按钮时正确删除。 如果我想刷新页面给定显示的数据显示在页面中,并且在刷新页面后单击内容以编辑页面中的内容,则页面中显示的编辑内容。这些值从本地存储中显示。 我的问题是如何使用javascript存储相同的插入和编辑值存储在本地存储中。我的示例代码是Given

这是我添加和编辑内容的脚本。我想创建本地存储并将添加和编辑值存储在本地存储中。刷新页面后,最后创建/编辑的值显示在列表中..

<button class="addbtn icon-plus" id="addnew" onclick="addSticky()">Add</button>
                <ul id="mynotes"></ul>    
var ul = document.getElementById("mynotes");
    var index=0;
    function addSticky()
    {

        var el=document.createElement("li");
        el.setAttribute("class","mylist");

        var cbtn=document.createElement("button");
        cbtn.setAttribute("class","close");
        cbtn.innerHTML="X";
        cbtn.setAttribute("onclick", "removeSticky()");

        var text=document.createElement("div");
        text.setAttribute("class","content");
        text.setAttribute("id","contentid_"+index);
        text.innerHTML="Sample content";

        el.appendChild(pin);
        el.appendChild(cbtn);
        el.appendChild(text);
        ul.appendChild(el);
        index++;

        var edit_data = document.getElementsByClassName('content');
        for (var i=0; i < edit_data.length; i++) {
            edit_data[i].addEventListener('click', edit);
        };

    }
    function removeSticky() {
        var clear = this.event.currentTarget.parentNode;
        ul.removeChild(clear);
    }



    function edit(){    
        var id = this.getAttribute('id');
        //alert(id);
        document.getElementById(id).contentEditable="true"; 
        //localStorage.clear();

    }

【问题讨论】:

    标签: javascript local-storage


    【解决方案1】:

    添加/编辑使用localStorage.setItem("key", "value1");

    获取价值使用localStorage.getItem("key");

    【讨论】:

      【解决方案2】:

      从 localStorage 获取项目:

      userName = localStorage.getItem('user')
      

      在 localStorage 中设置项目:

      userName = "newUser"
      localStorage.setItem('user',userName)
      

      【讨论】:

      • 我很难在这个程序中获取和设置本地存储值的位置,并且我以 {"id": 0, "data":"sample data"} 的格式存储我的数据。
      • $(function () { } - 页面加载
      • 我只使用 javascript 函数来获取和设置本地存储值..
      • 如果 id 和 data 是针对特定用户的,那么您存储的方式就可以了,对于存储大量记录,您还可以使用数组。对于我的一个宠物项目,我必须自己存储大量 html 标记,以便在页面刷新时将它们重新渲染,为此我使用了数组
      • 参考以下链接。 w3schools.com/jsref/met_storage_setitem.asp 使用 javascript 函数设置项目,stackoverflow.com/questions/807878/… - 用于页面加载
      【解决方案3】:

      向 localStorage 添加数据需要使用 setItem() 方法。键和值可以是任意字符串:

      localStorage.setItem('key', 'value')
      
      // Or to set an array of items
      const itemsArray = ["foo", "bar", 1, 2, 3];
      localStorage.setItem('items', JSON.stringify(itemsArray))
      

      要检索特定键的值,您需要使用 getItem() 方法:

      localStorage.getItem('key')
      

      使用 removeItem() 删除特定键:

      localStorage.removeItem('key')
      

      或者使用 clear() 清除所有本地存储:

      localStorage.clear()
      

      请参阅 https://www.taniarascia.com/how-to-use-local-storage-with-javascript/ 以获取有关此内容的优秀教程。

      【讨论】:

      • 我有问题编辑数据也存储在本地存储中以获得相同的值
      • 你能更详细地解释一下这个问题吗?我不确定我是否完全理解。如果您尝试编辑已存储在本地存储中的数据,可以使用setItem(...) 覆盖它。
      • 我没有正确理解。请给出我放置的地方的代码。如果我设置了本地存储,它不会正确获取创建的数据
      • 如果你想在本地存储中设置一个对象,你需要先将它转换成一个字符串:localStorage.setItem('myItem', JSON.stringify({"id": 0, "data":"sample data"}))。要再次检索此对象,您可以调用const myObject = JSON.parse(localStorage.get('myItem'))
      • 它可以很好地获取示例数据。但我想存储给定的插入数据并刷新它不隐藏内容的页面。
      猜你喜欢
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 2022-01-10
      • 2014-01-17
      • 2012-05-31
      • 1970-01-01
      相关资源
      最近更新 更多