-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjs-todo.js
78 lines (64 loc) · 1.74 KB
/
js-todo.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
'use strict'
const todoForm = document.querySelector('.js-todoform');
console.log(todoForm);
const todoInput = todoForm.querySelector('input');
const todoList = document.querySelector('.todo-li');
const TODO_LS = "toDos";
let todoArr = [];
function delTodos(event){
const btn = event.target;
const li = btn.parentNode;
todoList.removeChild(li);
const cleanTodo = todoArr.filter(item => {
console.log(item.id, li.id);
return item.id !== parseInt(li.id);
})
todoArr = cleanTodo;
saveTodos();
}
function saveTodos(){
localStorage.setItem(TODO_LS, JSON.stringify(todoArr));
}
function paintTodos(todoVal){
console.log(todoVal);
const li = document.createElement('li');
const delBtn = document.createElement('button');
delBtn.innerText = "X";
delBtn.addEventListener('click', delTodos);
const span = document.createElement('span');
span.innerText = todoVal;
li.appendChild(span);
li.appendChild(delBtn);
li.id = todoArr.length + 1;
todoList.appendChild(li);
}
function todoHandler(event){
event.preventDefault();
const todoVal = todoInput.value;
paintTodos(todoVal);
const todoObj = {
text : todoVal,
id : todoArr.length + 1
}
todoArr.push(todoObj);
localStorage.setItem(TODO_LS, JSON.stringify(todoArr));
todoInput.value = "";
}
function drawtodo(toDos){
const todo1 = JSON.parse(toDos);
console.log(todo1);
todo1.forEach(function(element){
paintTodos(element.text);
});
}
function loadTodos(){
const toDos = localStorage.getItem(TODO_LS);
if(toDos !== null){
drawtodo(toDos);
}
}
function init(){
loadTodos();
todoForm.addEventListener('submit', todoHandler);
}
init();