【发布时间】:2021-08-09 20:26:20
【问题描述】:
这是一个典型的待办事项列表。可以添加或删除项目,它是这样工作的,但不幸的是,当我刷新它时它消失了。我想使用 localStorage 功能来解决这个问题。我设法创建了一个存储项目的数组。现在我想在浏览器中显示存储在tasks 中的项目。当我加载document.addEventListener('DOMContentLoaded', getTasks),尤其是getTasks() 时,我遇到了困难。我设置了console.log('bonjour'),来测试它,它没有通过。
谢谢你,一如既往
function getTasks() {
console.log('bonjour')
let tasks;
if(localStorage.getItem('tasks') === null) {
tasks = [];
} else {
tasks = JSON.parse(localStorage.getItem('tasks'));
}
tasks.forEach(task => {
const html = `
<li>
<span>${task}</span>
<i class="far fa-trash-alt delete"></i>
</li>`
list.innerHTML += html;
console.log('hi')
});
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
<title>Todolist</title>
</head>
<body>
<form action="" class="add">
<h1>To do list</h1>
<input type="text" id="name" name="add" placeholder="Enter name here">
</form>
<ul class="todos">
<li>
<span>marco</span>
<i class="far fa-trash-alt delete"></i>
</li>
</ul>
<script src="app.js"></script>
</body>
</html>
【问题讨论】:
-
尝试 document.addEventListener("load", getTasks) 或 window.addEventListener("load", getTasks)
-
你的意思是 document.addEventListener('DOMContentLoaded', getTasks) 不能进入 getTasks 方法吗?或者你在问 localStorage 不能正常工作
-
因为他一开始有一个
console.log也没有触发,所以似乎整个getTasks函数没有被调用 -
它应该按预期触发。 jsfiddle.net/ramseyfeng/198xso4z
-
@huanfeng 我猜的整个事情