Course Content
Introduction to HTML (Structure of the Web)
0/1
Introduction to CSS (Styling the Web)
Getting Started with CSS
0/2
Introduction to JavaScript (Interactivity on the Web)
Project Presentation and Review
0/1
Protected: Web Development Bootcamp: Master HTML, CSS, and JavaScript in 3 Weeks
About Lesson

Understanding the DOM (Document Object Model)

The DOM (Document Object Model) is a programming interface for web documents. It represents the page so that programs can manipulate its structure, style, and content. Using JavaScript, we can interact with the DOM to select elements, modify their content, or even create new elements.


1. Selecting Elements

To interact with HTML elements, we first need to select them using JavaScript. There are several ways to select elements in the DOM:

Using document.getElementById()

The getElementById() method allows you to select an element by its id attribute.

<p id="greeting">Hello, World!</p>

<script>
    let element = document.getElementById("greeting");
    console.log(element);  // Logs the <p> element with id "greeting"
</script>

In this example, we select the <p> element with the id of greeting. The selected element is stored in the element variable, and you can then access or manipulate it.

Using document.querySelector()

querySelector() is a more flexible method, allowing you to select elements using CSS selectors. It returns the first element that matches the selector.

<p class="message">This is a message.</p>
<div class="message">This is another message.</div>

<script>
    let firstMessage = document.querySelector(".message");
    console.log(firstMessage);  // Logs the first <p> element with class "message"
</script>

Here, we use querySelector(".message") to select the first element with the class message. You can also use more complex selectors, such as selecting elements by tag name, attribute, or even combinations of selectors.

Selecting Multiple Elements with querySelectorAll()

If you need to select multiple elements that match a certain selector, you can use querySelectorAll(). This method returns a NodeList of all matching elements.

<p class="message">Message 1</p>
<p class="message">Message 2</p>
<p class="message">Message 3</p>

<script>
    let messages = document.querySelectorAll(".message");
    console.log(messages);  // Logs a NodeList of all <p> elements with class "message"
</script>

You can loop through the NodeList to access each element:

messages.forEach(function(msg) {
    console.log(msg.innerText);
});

2. Changing Content Dynamically with innerHTML

One of the most common ways to manipulate the content of an HTML element is by using the innerHTML property. This property allows you to get or set the HTML content inside an element.

Getting the Content

You can get the content of an element using innerHTML.

<p id="welcome">Welcome to the site!</p>

<script>
    let welcomeMessage = document.getElementById("welcome").innerHTML;
    console.log(welcomeMessage);  // Logs: "Welcome to the site!"
</script>

Here, we retrieve the HTML content of the <p> element with id="welcome" and log it to the console.

Setting the Content

You can also change the content of an element dynamically using innerHTML. This is useful for updating a page based on user actions.

<p id="welcome">Welcome to the site!</p>
<button id="changeMessage">Change Message</button>

<script>
    document.getElementById("changeMessage").addEventListener("click", function() {
        document.getElementById("welcome").innerHTML = "Hello, New User!";
    });
</script>

In this example:

  • When the user clicks the “Change Message” button, the innerHTML of the <p> element with id="welcome" is changed to "Hello, New User!".

Using innerHTML to Add Elements

You can also use innerHTML to add new HTML elements inside an existing element. This is useful when you want to dynamically add content, such as a new list item or a paragraph.

<ul id="myList">
    <li>Item 1</li>
    <li>Item 2</li>
</ul>
<button id="addItem">Add Item</button>

<script>
    document.getElementById("addItem").addEventListener("click", function() {
        let list = document.getElementById("myList");
        list.innerHTML += "<li>Item 3</li>";  // Adds a new list item
    });
</script>

In this example, when the “Add Item” button is clicked, a new <li> element with “Item 3” is added to the unordered list.


Conclusion

In this section, you learned how to interact with the DOM by selecting elements using methods like getElementById() and querySelector(), and how to change the content of elements dynamically using the innerHTML property. These concepts are fundamental to building interactive websites and creating dynamic user experiences. By combining DOM manipulation with event handling, you can make your web pages come alive with real-time updates and responsive behavior.