我正试着列一个待办事项清单,但我被困在当地的储藏室里。重新加载页面时不会显示任何内容。我猜想这是关于changeStorage()方法的,但是我不完全理解我做错了什么。
function addTask() {
let addTaskButton = document.getElementById('add-task-button')
let list = document.getElementById('task-list');
let li = document.createElement('li');
let checkbox = document.createElement('input');
let taskText = document.createElement('span');
let delButton = document.createElement('button');
let btnText = document.createTextNode('Delete task');
checkbox.addEventListener('change', changeStorage);
checkbox.type = 'checkbox';
checkbox.className = 'checkbox';
taskText.innerText = document.getElementById('input-task').value;
taskText.className = 'task';
delButton.className = 'delete-btn';
delButton.onclick = deleteTask;
addTaskButton.addEventListener('click', changeStorage);
delButton.appendChild(btnText);
li.appendChild(checkbox);
li.appendChild(taskText);
li.appendChild(delButton);
list.appendChild(li);
document.getElementById('input-task').value = '';
}
function changeStorage() {
let tasks = document.getElementById('ul').innerHTML;
localStorage.setItem('tasks', JSON.stringify(tasks));
}
function deleteTask () {
this.parentNode.remove();
changeStorage();
}
document.getElementById('add-task-button').addEventListener('click', addTask);
function loadList() {
document.querySelector('ul').innerHTML = JSON.parse(localStorage.getItem("tasks")) || [];
}
window.addEventListener('load', loadList);发布于 2022-01-28 19:14:29
这应该会将存储在localStorage中的内容更改为有效的JSON字符串,然后在加载时从其中重构LI元素。
function changeStorage() {
let tasks = [...document.querySelectorAll("ul li")].map(t => t.innerHTML);
localStorage.setItem('tasks', JSON.stringify(tasks));
}
function loadList() {
document.querySelector('ul').innerHTML = (JSON.parse(localStorage.getItem("tasks")) || []).map(t => "<li>" + t + "</li>").join("");
}https://stackoverflow.com/questions/70898687
复制相似问题