Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为待办事项列表进行本地存储?_Javascript_Html - Fatal编程技术网

Javascript 如何为待办事项列表进行本地存储?

Javascript 如何为待办事项列表进行本地存储?,javascript,html,Javascript,Html,我目前正在努力使[此处][1]显示的待办事项列表应用程序工作得更好。我已经做了一些事情,比如更改字体,但是我想使用Javascript cookies来实现这一点,以便正确保存用户的待办事项,并且在页面重新打开时仍然存在 我现在所需要的(我似乎不知道该怎么做)是1。浏览器将保存数据和2。浏览器在其中检索数据 任何帮助都将不胜感激 <body> <!--To-Do Header, where you add tasks--> <div

我目前正在努力使[此处][1]显示的待办事项列表应用程序工作得更好。我已经做了一些事情,比如更改字体,但是我想使用Javascript cookies来实现这一点,以便正确保存用户的待办事项,并且在页面重新打开时仍然存在

我现在所需要的(我似乎不知道该怎么做)是1。浏览器将保存数据和2。浏览器在其中检索数据

任何帮助都将不胜感激

<body>
        <!--To-Do Header, where you add tasks-->
        <div id="myDIV" class="header">
            <!--Change one: Make to-do list name different-->
            <h2>To-Do</h2>
            <input type="text" id="myInput" placeholder="Title..." style="padding-bottom: 20px;">
            <span onclick="newElement();" class="addBtn">Add</span>
        </div>
        <!--To-do list-->
        <ul id="myUL">

        </ul>

做
添加
var myNodelist=document.getElementsByTagName(“LI”);
var i;
对于(i=0;i}
使用本地存储,因为它比cookies持续时间更长:

// Store
localStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname");


编辑:@MichaelMior指出,本地存储可能不会比cookies持续更长时间,但cookies是随浏览器请求发送的,因此在这种情况下没有必要使用本地存储,因为它比cookies持续更长时间:

// Store
localStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname");


EDIT:@MichaelMior指出,本地存储可能不会比cookies持续更长时间,但是cookies是随浏览器请求发送的,因此在这种情况下没有必要存储这些文本内容。

您想存储文本内容,所以需要先获取它们

var values=[...document.getElementsByTagName("li")].map(el=>el.textContent);
现在可以存储这个数组了

localStorage.setItem("todos",values);
如果页面已加载,请将其添加回页面:

localStorage.getItem("todos").forEach(fumction(value){
 //create elem
 elem.textContent=value;
 });

您也可以存储HTML集合,但我不会,只存储文本更容易…

您想存储文本内容,所以需要先获取它们

var values=[...document.getElementsByTagName("li")].map(el=>el.textContent);
现在可以存储这个数组了

localStorage.setItem("todos",values);
如果页面已加载,请将其添加回页面:

localStorage.getItem("todos").forEach(fumction(value){
 //create elem
 elem.textContent=value;
 });

您也可以存储HTML集合,但我不会,只存储文本更容易…

下面是一个快速示例,我在本地存储中存储一个项目并为其命名,名为
input
。这显示了如何
setItem()
getItem()

看起来这个例子在SO沙箱中不起作用,所以这里有一个代码笔-

$('button')。在('click',function()上{
setItem(“input”,$('input').val());
fetch();
});
函数fetch(){
$('#storage').html(localStorage.getItem('input'));
}
fetch();//装载取货

添加

下面是一个快速的示例,我将一个项目存储在名为
input
的本地存储中,并为其命名。这显示了如何
setItem()
getItem()

看起来这个例子在SO沙箱中不起作用,所以这里有一个代码笔-

$('button')。在('click',function()上{
setItem(“input”,$('input').val());
fetch();
});
函数fetch(){
$('#storage').html(localStorage.getItem('input'));
}
fetch();//装载取货

添加

好的,我看到了它在那里做什么,但是我如何让它链接到li标签呢?@MayorMonty感谢您的链接!我使用W3Cube的原因也很多,但我也使用像CSS技巧之类的网站。@ XC0L考虑使用Mozilla开发者网络文档iNTETED本地存储并不一定比Cookie“持续更长”。它确实依赖于浏览器。我认为使用本地存储的一个更好的理由是,每次请求都会将cookies发送到服务器,而在这种情况下,这是不必要的。@MichaelMior谢谢!我听说过mozilla开发者网络,但从未真正看过。好吧,我知道它在那里做什么,但我如何让它链接到li标签上呢?@MayorMonty感谢链接!我使用W3Cube的原因也很多,但我也使用像CSS技巧之类的网站。@ XC0L考虑使用Mozilla开发者网络文档iNTETED本地存储并不一定比Cookie“持续更长”。它确实依赖于浏览器。我认为使用本地存储的一个更好的理由是,每次请求都会将cookies发送到服务器,而在这种情况下,这是不必要的。@MichaelMior谢谢!我听说过mozilla开发者网络,但从未真正看过。请在问题本身中提供所有相关代码,而不是在第三方网站上。好的,@Mikemcaughan。现在就可以。请在问题本身中提供所有相关代码,而不是在第三方网站上。好的,@mikemcaughan。现在就可以了。谢谢回答!我刚刚尝试了你的建议,但它似乎不想使用我的代码。添加后,我无法添加待办事项。我会看一下,因为它可能与变量名有关,但我只是想让您