Let's move on to the most exciting part of JavaScript: The DOM (Document Object Model) 🌐, which allows your code to manipulate web pages!
🖼️ What is the DOM?
The DOM is a programming interface for web documents. It represents the page (HTML) as a tree of objects, where every HTML element (like <h1>, <p>, or <div>) is a node that JavaScript can interact with.
Think of the HTML document as a large tree, and JavaScript gives you the tools to walk through that tree and change its branches, leaves, or fruit.
🔍 Phase 1: Selecting Elements
Before you can change an element, you must first select it. We store a reference to the selected element in a variable.
| Method | Description | Example |
|---|---|---|
document.getElementById() |
Selects a single element based on its unique id attribute. | const header = document.getElementById('main-title'); |
document.querySelector() |
Selects the first element that matches a specified CSS selector (e.g., #id, .class, or tag). (The most versatile) |
const button = document.querySelector('.submit-btn'); |
document.querySelectorAll() |
Selects all elements that match a specified CSS selector, returning a NodeList (list-like structure). | const listItems = document.querySelectorAll('li'); |
✏️ Phase 2: Manipulating Elements
Once you have selected an element, you can change its content, style, or attributes:
Changing Content
| Property | Description | Example |
|---|---|---|
.textContent |
Gets or sets the text content of the element, stripping out any HTML. (Safer option) | header.textContent = 'New Title!'; |
.innerHTML |
Gets or sets the content as HTML. Can be used to inject new tags. | container.innerHTML = '<ul><li>New Item</li></ul>'; |
Changing Styles (CSS)
You can change an element's appearance using the .style property. Note that CSS properties (like background-color) become camelCase (like backgroundColor) in JavaScript.
const box = document.querySelector('.box');
box.style.backgroundColor = 'blue';
box.style.padding = '10px';
Changing Classes
The .classList property is the best way to add, remove, or toggle CSS classes defined in your stylesheet.
| Method | Action | Example |
|---|---|---|
.add() |
Adds a class to the element. | box.classList.add('highlight'); |
.remove() |
Removes a class from the element. | box.classList.remove('default-color'); |
.toggle() |
Adds the class if it's not there, and removes it if it is. | box.classList.toggle('active'); |
👂 Phase 3: Event Handling
This is what makes a page interactive—making something happen when a user clicks, types, or moves the mouse.
The addEventListener() method is the standard way to set up events. It takes two main arguments: the event name (e.g., 'click') and a function to run when the event occurs.
const myButton = document.querySelector('#click-me');
// Add a function that runs ONLY when the button is clicked
myButton.addEventListener('click', () => {
// This is the function (called the "event handler")
myButton.textContent = "I was clicked!";
console.log("Button pressed!");
});
You now have all the foundational knowledge to build simple, interactive websites!
To truly master this, the next best step is to work through a guided project. Would you like me to give you a simple project idea that combines the DOM, functions, and conditionals?
0 Comments