Selecting Elements in the DOM Using JavaScript



Understanding DOM Element Selection in JavaScript

The Document Object Model (DOM) represents the HTML page structure as a tree of objects. JavaScript allows us to interact with and manipulate these elements. Selecting elements is the first step in DOM manipulation—whether you're changing text, styling an element, or attaching an event listener.

1. Selecting by ID: getElementById()

This method is used to access a single element with a specific id attribute.


// Suppose the HTML has an element: 
Hello
const element = document.getElementById('message'); console.log(element.textContent);

Output:

Hello
    

Q: Why is getElementById fast?

A: Because IDs are unique in the DOM, the browser can directly access it without scanning the entire document tree.

2. Selecting by Class: getElementsByClassName()

This method returns a live HTMLCollection of all elements with a given class name.


// Let's say there are elements with class="note"
const notes = document.getElementsByClassName('note');
console.log(notes.length); // Number of elements with class "note"
console.log(notes[0].textContent); // Access the first one
    

Output:

2
This is the first note
    

Q: Can I use array methods on this?

A: No, HTMLCollection is not an array. You can convert it using Array.from() or spread syntax [...notes].

3. Selecting by Tag: getElementsByTagName()

This method retrieves all elements with a specific tag name like div, p, or li.


const divs = document.getElementsByTagName('div');
console.log('Total divs:', divs.length);
    

Output:

Total divs: 4
    

4. Modern Way: querySelector() and querySelectorAll()

querySelector returns the first element that matches a CSS selector.


const firstHeading = document.querySelector('h1');
console.log(firstHeading.textContent);
    

Output:

Welcome to the page!
    

querySelectorAll returns a static NodeList of all matching elements.


const buttons = document.querySelectorAll('.btn');
buttons.forEach(btn => {
  console.log(btn.textContent);
});
    

Output:

Save
Cancel
Delete
    

Q: Should I use querySelector over older methods?

A: Yes, querySelector is preferred for modern development because it supports full CSS selectors and is more flexible.

5. Summary

Practice Challenge

Open your browser console and run the following:


const listItems = document.querySelectorAll('li');
listItems.forEach((li, index) => {
  console.log(`Item ${index + 1}: ${li.textContent}`);
});
    

Try modifying the selectors to target different elements and see what changes.



Welcome to ProgramGuru

Sign up to start your journey with us

Support ProgramGuru.org

You can support this website with a contribution of your choice.

When making a contribution, mention your name, and programguru.org in the message. Your name shall be displayed in the sponsors list.

PayPal

UPI

PhonePe QR

MALLIKARJUNA M