核心提示:localStorage todoList 的demo分享!DOCTYPE htmlhtml lang=enheadmeta charset=UTF-8meta name=viewport conte...
localStorage todoList 的demo分享
<!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>localStorage</title>
<link rel="stylesheet" href="css/reset.css">
<style>
.main {
width: 960px;
height: 100vh;
overflow: hidden;
margin: 0 auto;
font-size: 16px;
}
h1 {
padding: 10px 0;
}
.input {
display: flex;
align-items: center;
}
.input input {
background: #d2d2ff;
flex: 1;
height: 30px;
line-height: 30px;
font-size: 16px;
border-radius: 30px;
padding: 0 30px;
}
.input a {
display: inline-block;
padding: 0 30px;
border-radius: 30px;
height: 30px;
line-height: 30px;
background: #74d074;
color: #fff;
margin-left: 10px;
}
li {
margin: 10px;
background: #f2f2f2;
padding: 5px;
position: relative;
border-radius: 10px;
}
.delete {
position: absolute;
right: 0px;
top: 50%;
transform: translateY(-50%);
padding: 0 30px;
border-radius: 30px;
height: 30px;
line-height: 30px;
background: #ffafaf;
color: #fff;
}
.inputTxt {
background: #ccc;
margin-left: 10px;
}
</style>
</head>
<body>
<p class="main">
<h1>Today Todo</h1>
<p class="input">
<input type="text" placeholder="Today Todo" id="todo">
<a href="javascript:void(0);" id="localSave">提交</a>
<a href="javascript:void(0);" id="localClear">清空</a>
</p>
<p>
<ul class="msg"></ul>
</p>
</p>
<script>
var todo = document.getElementById('todo')
var localSave = document.getElementById('localSave')
var localClear = document.getElementById('localClear')
localClear.onclick = function () {
localStorage.clear()
location.reload()
}
localSave.onclick = function () {
addTodo()
}
todo.onkeyup = function (e) {
if (window.event)//如果window.event对象存在,就以此事件对象为准
e = window.event;
var code = e.charCode || e.keyCode;
if (code == 13) {
addTodo()
}
}
function addTodo() {
var time = new Date().getTime()
var data = todo.value
localStorage.setItem(time, data)//将时间戳作为键值
loadStorage('msg')//设置loadStorage函数的传参(ID值)
todo.value = ''
location.reload()
}
// 渲染列表
function loadStorage() {
var addItem = document.getElementsByClassName('msg')[0]
addItem.innerHTML = ''
for (i = 0; i < localStorage.length; i++) {
var addList = document.createElement('li')
var keys = localStorage.key(i)
var values = localStorage.getItem(keys)
var now = new Date()
var year = now.getFullYear()
var month = now.getMonth() + 1
var day = now.getDate()
addList.innerHTML = '内容:' + values + '<hr>用户ID:' + keys + ' (时间:' + year + '/' + month + '/' + day + ')<input type="text" class="inputTxt"><label class="modify">修改</label> <span class="delete">删除</span>'
addItem.appendChild(addList)
todo.focus()
}
}
loadStorage()
// 删除功能
var span = document.getElementsByTagName('span')
for (i = 0; i < span.length; i++) {
span[i].onclick = (function (n) {
return function () {
var keys = localStorage.key(n)
localStorage.removeItem(keys)
location.reload()
}
})(i)
}
// 修改功能
var modify = document.getElementsByClassName('modify')
for (j = 0; j < modify.length; j++) {
modify[j].index = j
modify[j].onclick = function () {
var num = this.index
var inputTxt = document.getElementsByClassName('inputTxt')[num]
var key = localStorage.key(num)
var value = inputTxt.value
localStorage.setItem(key, value)
location.reload()
}
}
</script>
</body>
</html>


