如何将任务保存在 localStorage 中,以便它们在页面重新加载后不会消失?
const contant__form = document.querySelector('.contant__form');
const container__task = document.querySelector('.container__task');
contant__form.addEventListener('submit', addTask);
container__task.addEventListener('click', delTask);
function addTask(e) {
e.preventDefault()
const input = document.querySelector('.contant__form-input');
if (!input.value == "") {
const Html =`<div class="task">
<h1>${input.value}</h1>
<div class="btn__task">
<div class="container__del-task" data-action="del">
<span class="container__del-btn"></span>
</div>
</div>
</div>`;
container__task.innerHTML += Html
input.value = "";
input.focus();
};
};
function delTask(e) {
self = e.target;
if (self.classList.contains('container__del-task')) {
const parentTask = e.target.closest('.task');
parentTask.remove();
};
};
.ToDo{
background-color: #485268;
padding-top: 50px;
padding-bottom: 20px;
height: 100%;
}
.container{
max-width: 1000px;
margin: 0 auto;
padding: 10px 15px;
}
.grid{
display: grid;
grid-template-columns: minmax(300px, 600px) 1fr;
gap: 20px;
align-items: center;
}
@media (max-width: 880px) {
.grid{
display: grid;
grid-template-columns: minmax(100px, 900px);
gap: 20px;
align-items: center;
}
}
.container__task{
background-color: #626f8b;
border-radius: 5px;
padding: 10px 15px;
}
.task{
display: flex;
justify-content: space-between;
align-items: center;
background-color: #7c8db3;
padding: 10px 15px;
margin: 10px 0px;
border: 1px solid black;
border-radius: 10px;
overflow: hidden;
}
.task h1{
font-size: 1.2rem;
}
.btn__task{
display: flex;
justify-content: center;
}
.container__del-task{
width: 50px;
height: 50px;
background-color: #90a4d1;
border: 1px solid black;
border-radius: 5px;
}
.container__del-task:hover{
background-color: #6f91e0;
}
.container__del-task{
position: relative;
}
.container__del-btn::after{
content: "";
position: absolute;
top: 25px;
left: 5px;
transform: rotate(50deg);
width: 40px;
height: 2px;
background-color: black;
}
.container__del-btn::before{
content: "";
position: absolute;
top: 25px;
left: 5px;
transform: rotate(-50deg);
width: 40px;
height: 2px;
background-color: black;
}
.contant__form{
display: flex;
flex-direction: column;
justify-content: center;
max-width: 500px;
background-color: #626f8b;
border-radius: 5px;
padding: 10px 5px;
}
.contant__form-input{
padding: 10px;
margin: 10px;
width: 300px;
border-radius: 10px;
background-color: #90a4d1;
font-size: 1.1rem;
}
.contant__form-btn{
display: flex;
padding: 10px;
margin: 10px;
width: 320px;
border-radius: 10px;
background-color: #90a4d1;
font-size: 1.1rem;
}
<section class="ToDo">
<div class="container">
<div class="grid">
<div class="container__task">
</div>
<form class="contant__form">
<input type="text" class="contant__form-input" placeholder="Введите задачу">
<button class="contant__form-btn">Отправить</button>
</form>
</div>
</div>
</section>`
为了能够将任务(TODO表)保存在localStorage中,以便页面重新加载后它们不会被删除,实际上有必要实现这种保存,以及实现页面加载时从localStorage中读取和显示任务已加载。
实施要点:
下面是如何完成此操作的示例。带注释和说明的代码 JSDoc
PS 该代码片段是为了美观而设计的,由于 localStorage 本身的原因(代码片段中禁止),它不会工作。