我用本地存储创建了一个待办事项列表。如果您创建三个列表项并删除第二个,则删除的列表项将在刷新时重新出现在第三项的位置。
编辑:我不确定它是否与本地存储或原始 todo 数组有关。在下面的代码中,我试图从数组中删除相关值,但我怀疑这不起作用(将数组记录到控制台不会产生任何结果)。
虽然它与本地存储无关,但我认为问题在于以下代码:
function removeItem() {
let item = this.parentNode.parentNode;
let parent = item.parentNode;
let id = parent.id;
console.log(id)
let value = parent.textContent;
todo.splice(todo.indexOf(value, 1));
this.parentNode.parentNode.removeChild(this.parentNode);
saveTodos();
}
编辑:这是我用来存储列表项的代码:
function saveTodos() {
let jsonstr = JSON.stringify(todo);
localStorage.setItem('todo', jsonstr);
}
function getTodos() {
localStorage.getItem('todo')
let jsonstr = localStorage.getItem("todo");
todo = JSON.parse(jsonstr);
if (!todo || !todo.length) {
todo = [];
}
else {
renderTodoList();
} }
这是 codepen 的链接:https ://codepen.io/david-webb/pen/yLeqydK
你能帮我吗?