-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.js
73 lines (61 loc) · 1.98 KB
/
main.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
const neta = documents.querySelecter('.add');
const list = documnents.querySelecter('.Neta');
const search = document.querySelector('.search input');
(function(){
// 初期化処理
// ローカルストレージに格納されている値を取得し、リストを生成する
for(var key in localStorage){
var html = localStorage.getItem(key);
if (html) {
list.innerHTML += localStorage.getItem(key);
}
}
});
const saveTaskToLocalStorage = (task, html) => {
// null は、localStorage に保存しない
if(html){
// localStorage は、0 から始まる
localStorage.setItem(task, html);
return;
}
return;
}
const deleteTaskFromLocalStorage = task => {
localStorage.removeItem(task);
return;
}
//追加機能
const createNetaList = task => {
const html = `
<li class="list-group-item d-flex justify-content-between align-items-center">
<span>${task}</span>
<i class="far fa-trash-alt delete"></i>
</li>
`;
list.innerHTML += html;
saveTaskToLocalStrage(task, html);
}
//消去機能
neta.addEventListener('submit', e => {
e.preventDefault();
});
neta.addEventListener('click', e => {
if (e.target.classList.contains('delete')){
e.target.parentElement.remove();
const task = e.target.parentElement.textContent.trim()
deleteTaskFromLocalStorage(task);
}
});
const filterTasks = (term) => {
Array.from(list.children)
.filter((todo) => !todo.textContent.toLowerCase().includes(term))
.forEach((todo) => todo.classList.add('filtered'));
Array.from(list.children)
.filter((todo) => todo.textContent.toLowerCase().includes(term))
.forEach((todo) => todo.classList.remove('filtered'));
};
search.addEventListener('keyup', () => {
// 空白削除かつ、小文字に変換(大文字・小文字の区別をなくす)
const term = search.value.trim().toLowerCase();
filterTasks(term);
});