Se você está iniciando na programação front-end, entender como funciona o DOM JavaScript é um dos primeiros passos para começar a construir interfaces web interativas.
O DOM (Document Object Model) é uma representação em forma de árvore de todos os elementos HTML de uma página. Ele é o que permite que o JavaScript acesse e manipule dinamicamente o conteúdo, a estrutura e o estilo de uma página web.
Neste artigo, você vai aprender:
- O que é o DOM e como ele funciona
- Como o JavaScript interage com o DOM
- Exemplos práticos de manipulação de elementos
- Boas práticas para trabalhar com DOM
Entendendo como funciona o DOM do Javascript
O que é o DOM
O DOM é uma interface de programação padronizada pelos navegadores que permite representar documentos HTML como objetos em memória. Cada elemento HTML (como <div>
, <p>
, <ul>
, <a>
, etc.) torna-se um “nó” na estrutura de árvore do DOM.
Isso significa que você pode, com JavaScript, acessar, modificar, adicionar ou remover qualquer elemento da página, sem precisar recarregá-la. Essa capacidade é o que torna as páginas web modernas dinâmicas.
Exemplo prático: estrutura de nós no DOM
Considere o seguinte código HTML:
<!DOCTYPE html>
<html>
<head>
<title>Minha Página</title>
</head>
<body>
<h1>Bem-vindo</h1>
<p id="intro">Essa é uma introdução.</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
</body>
</html>
Esse documento HTML é transformado em uma árvore DOM com os seguintes nós:
- O nó raiz é o
<html>
- Dentro dele, temos dois nós filhos:
<head>
e<body>
- Dentro do
<head>
há um nó<title>
, com o texto “Minha Página” - Dentro do
<body>
, há:- Um nó
<h1>
com texto “Bem-vindo” - Um parágrafo
<p>
com IDintro
- Uma lista
<ul>
com dois itens<li>
como filhos
- Um nó
Cada elemento, texto ou atributo é representado como um nó. Essa estrutura hierárquica permite que você acesse qualquer parte do documento de forma organizada e programática usando JavaScript.
Como funciona o DOM do JavaScript
Assim que uma página é carregada no navegador, o HTML é convertido em um objeto chamado document
. Esse objeto é o ponto de entrada para interagir com o DOM.
Por exemplo, se você quiser acessar um parágrafo com um ID mensagem
, pode fazer:
document.getElementById("mensagem");
document.querySelector("#mensagem");
Assim, você estará utilizando o Javascript para selecionar o seguinte texto:
<p id="mensagem">Texto original</p>
Com isso, você pode por exemplo mudar o texto, adicionar classes, alterar atributos, ou mesmo criar elementos novos dinamicamente.
Manipulando o DOM na prática
Vamos supor que você tenha o seguinte HTML:
<!DOCTYPE html>
<html>
<head>
<title>Minha Página</title>
</head>
<body>
<h1>Bem-vindo</h1>
<p id="mensagem">Texto original</p>
<button onclick="mudarTexto()">Clique aqui</button>
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
</body>
</html>
E no JavaScript:
function mudarTexto() {
const elemento = document.getElementById("mensagem");
elemento.textContent = "Texto alterado com sucesso!";
}
Quando o usuário clica no botão, o texto do parágrafo muda sem precisar atualizar a página. Isso é o DOM em ação.
Boas práticas ao trabalhar com o DOM
- Sempre espere o DOM carregar antes de manipulá-lo (
DOMContentLoaded
ou colocando o<script>
no final dobody
) - Prefira
querySelector
/querySelectorAll
ao invés degetElementById
, por serem mais flexíveis - Evite manipular elementos diretamente em grandes quantidades — use fragmentos ou bibliotecas para performance.
Outra boa prática é minimizar o número de acessos diretos ao DOM. Cada vez que você busca ou modifica elementos na árvore, o navegador pode precisar reprocessar o layout da página, o que impacta no desempenho. Por isso, armazene os elementos em variáveis quando for reutilizá-los, evitando chamadas repetitivas como document.querySelector("#meuElemento")
dentro de loops.
Além disso, utilize delegação de eventos sempre que possível. Em vez de adicionar um addEventListener
para cada botão em uma lista, por exemplo, adicione o ouvinte ao elemento pai e filtre os eventos com base no target
. Isso torna o código mais eficiente e escalável, especialmente em interfaces com muitos elementos dinâmicos.
Links úteis para aprender mais
Continue sua trilha de aprendizado
Agora que você entendeu como funciona o DOM JavaScript, é hora de seguir para o próximo passo: aprender como o navegador envia e recebe informações. No próximo artigo, vamos falar sobre os métodos HTTP: GET, POST, PUT e DELETE.