DEV Community

Cover image for JavaScript DOM (Document Object Model)
Saravanan Lakshmanan
Saravanan Lakshmanan

Posted on

JavaScript DOM (Document Object Model)

What is DOM?

DOM (Document Object Model) is a programming interface provided by the browser that represents an HTML document as a tree of objects.

It allows JavaScript to access, modify, create, and delete HTML elements dynamically.

In simple words:

DOM is the bridge between HTML and JavaScript.

Without the DOM, JavaScript cannot change the content or appearance of a webpage after it has loaded.


How DOM Works

Suppose we have the following HTML:

<!DOCTYPE html>
<html>
<head>
    <title>DOM Example</title>
</head>
<body>

<h1>Hello World</h1>

<p>Learning JavaScript DOM</p>

<button>Click Me</button>

</body>
</html>
Enter fullscreen mode Exit fullscreen mode

The browser converts this HTML into a tree structure:

Document
│
└── html
    │
    ├── head
    │   └── title
    │
    └── body
        ├── h1
        ├── p
        └── button
Enter fullscreen mode Exit fullscreen mode

JavaScript accesses these nodes through the DOM.


Why Do We Use DOM?

DOM allows JavaScript to:

  • Read HTML elements
  • Change text content
  • Change styles
  • Change attributes
  • Create new elements
  • Remove elements
  • Handle user events
  • Build interactive web pages

Selecting Elements

1. getElementById()

Selects one element using its id.

let heading = document.getElementById("title");
Enter fullscreen mode Exit fullscreen mode

2. getElementsByClassName()

Returns all elements having the same class.

let items = document.getElementsByClassName("card");
Enter fullscreen mode Exit fullscreen mode

Returns an HTMLCollection.


3. getElementsByTagName()

Selects elements using their tag.

let paragraphs = document.getElementsByTagName("p");
Enter fullscreen mode Exit fullscreen mode

4. querySelector()

Returns the first matching element.

document.querySelector(".box");

document.querySelector("#title");

document.querySelector("p");
Enter fullscreen mode Exit fullscreen mode

5. querySelectorAll()

Returns every matching element.

document.querySelectorAll(".card");
Enter fullscreen mode Exit fullscreen mode

Returns a NodeList.


Changing Content

innerText

Changes visible text.

heading.innerText = "Welcome";
Enter fullscreen mode Exit fullscreen mode

innerHTML

Changes HTML content.

heading.innerHTML = "<span>Hello</span>";
Enter fullscreen mode Exit fullscreen mode

textContent

Returns all text including hidden text.

heading.textContent
Enter fullscreen mode Exit fullscreen mode

Working with Form Elements

value

Used for input and textarea.

let username = input.value;
Enter fullscreen mode Exit fullscreen mode

Example:

textbox.value = "";
Enter fullscreen mode Exit fullscreen mode

Clears the textbox.


Changing Attributes

src

image.src = "image.png";
Enter fullscreen mode Exit fullscreen mode

href

link.href = "https://example.com";
Enter fullscreen mode Exit fullscreen mode

id

element.id = "header";
Enter fullscreen mode Exit fullscreen mode

className

element.className = "active";
Enter fullscreen mode Exit fullscreen mode

Styling Elements

element.style.color = "red";

element.style.backgroundColor = "yellow";

element.style.fontSize = "24px";

element.style.display = "none";
Enter fullscreen mode Exit fullscreen mode

Creating Elements

let p = document.createElement("p");
Enter fullscreen mode Exit fullscreen mode

Adding Elements

parent.appendChild(p);
Enter fullscreen mode Exit fullscreen mode

Removing Elements

element.remove();
Enter fullscreen mode Exit fullscreen mode

Events in DOM

Events are actions performed by users.

Examples:

  • click
  • dblclick
  • input
  • change
  • mouseover
  • mouseout
  • keydown
  • keyup
  • submit
  • focus
  • blur

Event Example

<button onclick="show()">Click</button>
Enter fullscreen mode Exit fullscreen mode
function show(){
    alert("Button clicked");
}
Enter fullscreen mode Exit fullscreen mode

Reading Input

<input id="name">
Enter fullscreen mode Exit fullscreen mode
let value = document.getElementById("name").value;
Enter fullscreen mode Exit fullscreen mode

Updating Text

document.getElementById("result").innerText = value;
Enter fullscreen mode Exit fullscreen mode

References:
https://www.w3schools.com/js/js_htmldom.asp
https://www.geeksforgeeks.org/javascript/dom-document-object-model/

Top comments (0)