DOM + EVENTS + PROJECT – JavaScript Day 2
π DAY 2: DOM EVENTS PROJECTDOM EVENTS PROJECT
What is the DOM?
DOM (Document Object Model) = how JavaScript βseesβ your HTML.
π It lets you:
- Select elements
- Change content
- Respond to user actions
π 1. Selecting Elements
let title = document.getElementById("title");
console.log(title);Other ways:
document.querySelector(".className");
document.querySelectorAll("p");βοΈ 2. Changing Content
document.getElementById(“title”).innerText = “New Text”;
document.getElementById("title").innerText = "New Text";Change HTML:
element.innerHTML = "<b>Hello</b>";π¨ 3. Changing Styles
document.getElementById("title").style.color = "blue";π±οΈ 4. Events (User Interaction)
Example: Click
button.addEventListener("click", function() {
alert("Button clicked!");
});β¨οΈ 5. Input Event
input.addEventListener("input", function() {
console.log(input.value);
});π οΈ π§ͺ PROJECT 2: TO-DO LIST APP
This is your first real-world app π₯
π¦ Features:
- Add task
- Display tasks
- Delete task
π» FULL CODE
<!DOCTYPE html>
<html>
<head>
<title>To-Do App</title>
</head>
<body>
<h2>To-Do List</h2>
<input id="taskInput" placeholder="Enter task">
<button id="addBtn">Add Task</button>
<ul id="taskList"></ul>
<script>
let input = document.getElementById("taskInput");
let button = document.getElementById("addBtn");
let list = document.getElementById("taskList");
button.addEventListener("click", function() {
let task = input.value;
if (task === "") return;
let li = document.createElement("li");
li.innerText = task;
// Delete button
let deleteBtn = document.createElement("button");
deleteBtn.innerText = "Delete";
deleteBtn.addEventListener("click", function() {
li.remove();
});
li.appendChild(deleteBtn);
list.appendChild(li);
input.value = "";
});
</script>
</body>
</html>π― YOUR TASK (VERY IMPORTANT)
Upgrade this app:
β Add these features:
- β Mark task as completed (click to strike through)
- β Save tasks (use
localStorage) - β Press Enter key to add task
π‘ Hints (Try yourself first!)
β Strike-through:
li.style.textDecoration = "line-through";β Save to localStorage:
localStorage.setItem("tasks", JSON.stringify(array));β Get from localStorage:
JSON.parse(localStorage.getItem("tasks"));What You Just Learned
- DOM manipulation
- Event handling
- Dynamic elements
- Real app logic
π This is core JavaScript power
