


<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<link rel="stylesheet" href="./index.css" />
</head>
<body>
<div id="app">
<div class="box">
<h1>待办列表</h1>
<div class="tool">
<input autofocus="" class="userTask" type="text" placeholder="请输入代办事项" />
</div>
<ul id="list">
</ul>
<section>
<span class="nodone">4 未完成</span><a href="#" class="done">清理 <b>0</b> 已完成</a>
</section>
</div>
</div>
<script>
let data = JSON.parse(localStorage.getItem('key1')) || []
let userTask = document.querySelector('.userTask')
let nodone = document.querySelector('.nodone')
let done = document.querySelector('.done')
let list = document.querySelector('#list')
function init() {
let newStr = ''
data.forEach(function (v, i) {
newStr += `<li class="${v.state ? 'finished' : ''}">
<div>
<input class="ck" type="checkbox" data-id="${v.id}"${v.state ? 'checked' : ''} /><span class="false">${v.task}</span>
</div>
<button class="del" data-id="${v.id}">X</button>
</li>`
})
list.innerHTML = newStr
}
init()
un()
save()
document.addEventListener('keydown', function (e) {
if (e.keyCode == 13) {
let num = {
id: data.length > 0 ? data[data.length - 1].id + 1 : 1,
state: false,
task: userTask.value
}
data.push(num)
init()
un()
}
})
function un() {
let index = 0, index2 = 0
data.forEach(function (v, i) {
if (v.state == false) {
index++
} else if (v.state == true) {
index2++
}
})
nodone.innerHTML = `${index}未完成`
done.innerHTML = `清理${index2}已完成`
}
list.addEventListener('click', function (e) {
if (e.target.className == 'ck') {
let id = e.target.dataset.id
console.log(1);
data.forEach(function (v, i) {
if (id == v.id) {
v.state = !v.state
init()
save()
un()
}
})
} else if (e.target.className == 'del') {
let id = e.target.dataset.id
console.log(id);
data.forEach(function (v, i) {
if (id == v.id) {
data.splice(i, 1)
init()
save()
un()
}
})
}
})
function save() {
localStorage.setItem('key1', JSON.stringify(data))
}
done.addEventListener('click', function () {
data = data.filter(function (v, i) {
return v.state == false
})
init()
save()
un()
})
</script>
</body>
</html>