Skip to main content

Various ways of how to get DOM elements using the DOM API?

ยท 3 min read

Document Object Model (DOM) is a standard programming interface recommended by W3C to deal with extensible markup languages. The DOM is the standard for how to get, modify, add, or remove HTML elements. Everything we do with a web page in JavaScript is done through the DOM.

This article will show you various ways of how to get DOM elements using DOM API.

document.getElementByIdโ€‹

document.getElementById() get a DOM element by its id. return a HTMLElement object.

<div id="app"></div>
const app = document.getElementById("app");

document.getElementsByTagNameโ€‹

document.getElementsByTagName() get a DOM element by its tag name. return a HTMLCollection object.

<div />
<div />
const divs = document.getElementsByTagName("div");
console.log(divs.length); // 2

document.getElementsByClassNameโ€‹

document.getElementsByClassName() get a DOM element by its class name. return a HTMLCollection object.

<div class="row" />
<div class="row" />
<div class="row" />
const rows = document.getElementsByClassName("row");
console.log(rows.length); // 3

document.querySelectorโ€‹

document.querySelector() get a DOM element by its CSS selector. return a HTMLElement object. CSS selector is very powerful, and can be used to get a DOM element by its tag name, class name, id, or any other attribute.

<div id="app" />
<div class="container" />
const appDiv = document.querySelector("#app");
const containerDiv = document.querySelector(".container");

document.querySelectorAllโ€‹

document.querySelectorAll() get a DOM element by its CSS selector. return a NodeList object. The only difference between querySelectorAll() and querySelector() is that querySelectorAll() returns a NodeList object.

<div class="container" />
<div class="container" />
const divs = document.querySelectorAll(".container");
console.log(divs.length); // 2

firstChildโ€‹

element.firstChild get the first child of the element. return a Node object.

<div>
<span>Hello</span>
</div>
const div = document.querySelector("div");
const span = div.firstChild; // <span>Hello</span>

lastChildโ€‹

element.lastChild get the last child of the element. return a Node object.

<div>
<span>Hello</span>
<span>World</span>
</div>
const div = document.querySelector("div");
const span = div.lastChild; // <span>World</span>

childNodesโ€‹

element.childNodes get all children of the element. return a NodeList object.

<div>
<span>Hello</span>
<span>World</span>
</div>

previousSiblingโ€‹

element.previousSibling get the previous sibling of the element. return a Node object.

<span>1</span>
<span id="span2">2</span>
<span>3</span>
const span2 = document.querySelector("#span2");
const span1 = span2.previousSibling; // <span>1</span>

nextSiblingโ€‹

element.nextSibling get the next sibling of the element. return a Node object.

<span>1</span>
<span id="span2">2</span>
<span>3</span>
const span2 = document.querySelector("#span2");
const span3 = span2.nextSibling; // <span>3</span>

parentNodeโ€‹

element.parentNode get the parent node of the element. return a Node object.

<div>
<span>1</span>
<span id="span2">2</span>
<span>3</span>
</div>
const span2 = document.querySelector("#span2");
const parentNode = span2.parentNode; // <div>

NodeListโ€‹

As you can see, some of the methods above return a NodeList object. It's a array like object, and you can use it like an array.

Finally, I will show you how to iterate through a NodeList object. You can use for loop, forEach function, or for of loop.

const divs = document.querySelectorAll("div");
for (let i = 0; i < divs.length; i++) {
const div = divs[i];
console.log(div.innerHTML);
}
// forEach
divs.forEach((div) => {
console.log(div.innerHTML);
});
// for of
for (const div of divs) {
console.log(div.innerHTML);
}