gpt4 book ai didi

javascript - 如何使todolist在使用本地存储重新加载后保留

转载 作者:行者123 更新时间:2023-12-02 23:21:46 25 4
gpt4 key购买 nike

我编写了到目前为止,但不知道如何使用本地存储,因此在重新加载/刷新时我不必在浏览器中丢失我的待办事项列表。

这是我已经使用 savetodos 函数将项目设置到本地存储的代码

 var form =  document.querySelector('form') 
var ul = document.querySelector('ul')
var button = document.querySelector('#button');
var input =
document.querySelector('#item');
var clear =
document.querySelector('#clear');
var savedToDos = []
//this makes list item
var liMaker = text => {
var li = document.createElement('li');
li.textContent = text;
ul.insertBefore(li, ul.childNodes[0])
}
form.addEventListener('submit', function(e) {
e.preventDefault()
liMaker(input.value)
input.value = ''; }
);

clear.addEventListener('click', remove);
//function remove to remove list item
function remove(){
saveToDos();
while (ul.firstChild) {
ul.removeChild(ul.firstChild);
}
}
function saveToDos() {
var items =
ul.getElementsByTagName("li");
for (var i = 0; i < items.length; ++i) {
savedToDos.push(
items[i].innerHTML);
}

localStorage.setItem('savedValues', savedToDos);
}
 <div class='container'> 
<h1> New todo list</h1>
<form>
<input type='text' id='item'
required>
<ul id="myList"></ul>
<button id='button'>add</
button> </form>
<button id="clear">Clear</
button>
</div>







最佳答案

您可以按如下方式处理:

  • 添加输入值时将其保存到本地存储
  • 如果本地存储中有项目存储,则在页面加载时填充列表
  • 当用户单击清除按钮时,从本地存储中删除所有项目

它可能是这样的:

<div className='container'>
<h1> New todo list</h1>
<form>
<input type='text' id='item' required>
<ul id="myList"></ul>
<button id='button'>add</button>
</form>
<button id="clear">Clear</button>
</div>
<script>
var form = document.querySelector('form')
var ul = document.querySelector('ul')
var button = document.querySelector('#button');
var input = document.querySelector('#item');
var clear = document.querySelector('#clear');
var savedToDos = []
//this makes list item
var liMaker = text => {
var li = document.createElement('li');
li.textContent = text;
ul.insertBefore(li, ul.childNodes[0])
}
form.addEventListener('submit', function(e) {
e.preventDefault()
liMaker(input.value)
saveToDo(input.value)
input.value = '';
});

clear.addEventListener('click', remove);
//function remove to remove list item
function remove(){
while (ul.firstChild) {
ul.removeChild(ul.firstChild);
}
localStorage.removeItem('savedValues')
}
function saveToDo(item) {
var storedItems = localStorage.getItem('savedValues');
storedItems = storedItems ? JSON.parse(storedItems) : [];
storedItems.push(item);
localStorage.setItem('savedValues', JSON.stringify(storedItems))

}
// populate the list on page load from localStorage
var storedItems = localStorage.getItem('savedValues');
if (storedItems) {
JSON.parse(storedItems).forEach(function(item) {
liMaker(item)
})
}
</script>

关于javascript - 如何使todolist在使用本地存储重新加载后保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56920451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com