【发布时间】:2019-09-21 10:53:43
【问题描述】:
我正在为学校的一个期末项目制定一份待办事项清单。我已经设置并工作了列表本身,但是我忘记添加本地存储,以便在刷新页面时它会保留用户设置的值,例如删除列表项或添加新项。 1)我不知道在我的代码中的什么地方插入它,2)我不知道格式,比如“我已经使用的这个变量放在这里”类型的东西。我将代码粘贴到 codepen,可以在这里找到:https://codepen.io/otterspawdesign/pen/bJXaYm 这是javascript:
var listitems = document.getElementsByTagName("li");
var i;
for (i = 0; i < listitems.length; i++) {
var span = document.createElement("span");
var txt = document.createTextNode("\u00D7");
span.className = "close";
span.appendChild(txt);
listitems[i].appendChild(span);
}
var close = document.getElementsByClassName("close");
var i;
for (i = 0; i < close.length; i++) {
close[i].onclick = function() {
var div = this.parentElement;
div.style.display = "none";
}
}
var list = document.querySelector('ul');
list.addEventListener('click', function(ev) {
if (ev.target.tagName === 'li') {
ev.target.classList.toggle('checked');
}
}, false);
function newElement() {
var li = document.createElement("li");
var inputValue = document.getElementById("typefield").value;
var t = document.createTextNode(inputValue);
li.appendChild(t);
if (inputValue === '') {
alert("Type an item to add to your list.");
} else {
document.getElementById("thelist").appendChild(li);
}
document.getElementById("typefield").value = "";
var span = document.createElement("SPAN");
var txt = document.createTextNode("\u00D7");
span.className = "close";
span.appendChild(txt);
li.appendChild(span);
for (i = 0; i < close.length; i++) {
close[i].onclick = function() {
var div = this.parentElement;
div.style.display = "none";
}
}
}
我的最后期限很紧(今晚午夜),所以如果有人能像我 5 岁一样向我解释它并提供代码并告诉我它是如何工作的,我的意思是一步一步地,我会非常感激。
【问题讨论】:
-
我做到了,虽然我理解它的作用,但我不确定在我的代码中的何处实现它。另外,我是否使用我已经声明的变量?
-
你的代码有一些你想要持久化的数据。任何时候发生变化,在 localStorage 上设置新值。当页面重新加载时,会发生加载事件,或者文档准备好,无论您喜欢哪种方式,检查 localStorage 中是否存在该值。如果是,请在页面上恢复您的数据。
-
请记住,data 不是指 html。它指的是html呈现的信息。您使用该数据重新创建 html。
-
如果我理解你的意思,我会在变量“listitems”上实现本地存储?