WEBSITE DEVELOPMENT

Topic 16  JavaScript Projects


Project 1 — To-Do List App


javascript

// Full To-Do List with Local Storage

const input  = document.querySelector(“#task-input”);

const list   = document.querySelector(“#task-list”);

const addBtn = document.querySelector(“#add-btn”);

 

let tasks = JSON.parse(localStorage.getItem(“tasks”)) || [];

function render() {

  list.innerHTML = “”;

  tasks.forEach((task, i) => {

    const li = document.createElement(“li”);

    li.textContent = task.text;

    if (task.done) li.classList.add(“done”);

    // Toggle done on click

    li.addEventListener(“click”, () => {

      tasks[i].done = !tasks[i].done;

      save();

    });

    // Delete button

    const del = document.createElement(“button”);

    del.textContent = “×”;

    del.addEventListener(“click”, (e) => {

      e.stopPropagation(); // Don’t trigger li click

      tasks.splice(i, 1);

      save();

    });

    li.appendChild(del);

    list.appendChild(li);

  });

}

function save() {

  localStorage.setItem(“tasks”, JSON.stringify(tasks));

  render();

}

addBtn.addEventListener(“click”, () => {

  let text = input.value.trim();

  if (!text) return;

  tasks.push({ text, done: false });

  input.value = “”;

  save();

});

input.addEventListener(“keydown”, (e) => {

  if (e.key === “Enter”) addBtn.click();

});

render(); // Load tasks when page opens

error: Content is protected !!