-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
58 lines (49 loc) · 1.55 KB
/
script.js
File metadata and controls
58 lines (49 loc) · 1.55 KB
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
// Select DOM elements
const todoInput = document.getElementById('todo-input');
const addBtn = document.getElementById('add-btn');
const todoList = document.getElementById('todo-list');
// Load todos from local storage
document.addEventListener('DOMContentLoaded', loadTodos);
// Add a new to-do
addBtn.addEventListener('click', () => {
const task = todoInput.value.trim();
if (task) {
addTodoToDOM(task);
saveTodoToLocalStorage(task);
todoInput.value = '';
}
});
// Add a task to the DOM
function addTodoToDOM(task) {
const li = document.createElement('li');
li.textContent = task;
const deleteBtn = document.createElement('button');
deleteBtn.textContent = 'Delete';
deleteBtn.addEventListener('click', () => {
li.remove();
deleteTodoFromLocalStorage(task);
});
li.appendChild(deleteBtn);
todoList.appendChild(li);
}
// Save a task to local storage
function saveTodoToLocalStorage(task) {
const todos = getTodosFromLocalStorage();
todos.push(task);
localStorage.setItem('todos', JSON.stringify(todos));
}
// Retrieve todos from local storage
function getTodosFromLocalStorage() {
return JSON.parse(localStorage.getItem('todos')) || [];
}
// Load todos from local storage to DOM
function loadTodos() {
const todos = getTodosFromLocalStorage();
todos.forEach(addTodoToDOM);
}
// Delete a task from local storage
function deleteTodoFromLocalStorage(task) {
const todos = getTodosFromLocalStorage();
const updatedTodos = todos.filter(todo => todo !== task);
localStorage.setItem('todos', JSON.stringify(updatedTodos));
}