Se você está começando no mundo do desenvolvimento web, provavelmente já ouviu falar sobre o DOM. Mas o que exatamente isso significa? E por que ele é tão importante para quem trabalha com HTML, CSS e JavaScript?
O DOM (Document Object Model) é uma tecnologia essencial que permite que os desenvolvedores interajam com uma página da web de maneira dinâmica. É graças ao DOM que conseguimos modificar elementos na página sem precisar recarregá-la, tornando a experiência do usuário muito mais fluida e interativa.
Neste artigo, vamos explorar tudo sobre o DOM: o que é, como funciona, sua estrutura hierárquica e como podemos manipulá-lo usando JavaScript. Se você quer aprender a construir aplicações web mais interativas e otimizadas, este guia é para você!
Conteúdo
O que é o DOM?
O DOM (Document Object Model, ou Modelo de Objeto de Documento) é uma representação da estrutura de um documento HTML ou XML na forma de uma árvore de objetos. Essa estrutura permite que os desenvolvedores acessem e manipulem os elementos da página de maneira programática.
Podemos pensar no DOM como um mapa interativo da página web. Cada elemento HTML (como <div>, <h1>, <p>, <img>, etc.) é representado como um nó dentro dessa árvore, e podemos navegar, modificar ou remover esses nós conforme necessário.
Exemplo básico
Vamos supor que temos o seguinte código HTML:
Exemplo de DOM
O que é o DOM?
O DOM permite manipular essa página via JavaScript.
Quando esse documento é carregado no navegador, ele se transforma em uma estrutura de árvore mais ou menos assim:
Document
│
├── html
│ ├── head
│ │ ├── meta
│ │ ├── title
│ ├── body
│ ├── h1
│ ├── p
Cada um desses elementos pode ser acessado e manipulado via JavaScript. É assim que conseguimos criar interações como botões que mudam textos, imagens que aparecem e desaparecem, animações dinâmicas e muito mais.
Estrutura Hierárquica do DOM
O DOM é estruturado como uma árvore hierárquica, onde cada elemento HTML é representado por um nó. Essa organização permite que possamos navegar pelos elementos e manipulá-los com facilidade usando JavaScript.
Tipos de Nós no DOM
No modelo de árvore do DOM, existem diferentes tipos de nós, cada um representando uma parte do documento HTML. Os principais são:
- Nó de Documento (document) – Representa toda a página.
- Nó de Elemento (<html>, <body>, <div>, <p>, etc.) – Representa cada tag HTML individual.
- Nó de Texto – Representa o texto contido dentro de um elemento.
- Nó de Atributo – Representa os atributos dos elementos, como id, class, src, etc.
- Nó de Comentário – Representa os comentários dentro do código HTML.
Vamos visualizar essa estrutura com um exemplo prático. Suponha que temos o seguinte HTML:
Exemplo de DOM
Olá, DOM!
Esse é um exemplo da estrutura do DOM.
Quando o navegador interpreta esse documento, ele o organiza na seguinte estrutura hierárquica:
Document
│
├── html
│ ├── head
│ │ ├── title ("Exemplo de DOM")
│ ├── body
│ ├── h1 ("Olá, DOM!")
│ ├── p ("Esse é um exemplo da estrutura do DOM.")
Cada um desses nós pode ser acessado e manipulado usando JavaScript.
Como Navegar no DOM?
O DOM fornece várias propriedades para navegar pelos elementos da árvore. Aqui estão algumas das mais utilizadas:
- document.documentElement → Retorna o elemento <html>.
- document.body → Retorna o elemento <body>.
- document.head → Retorna o elemento <head>.
- document.getElementById(‘id’) → Retorna um elemento específico pelo seu id.
- document.getElementsByTagName(‘tag’) → Retorna uma coleção de elementos com a mesma tag (ex: p, h1).
- document.getElementsByClassName(‘classe’) → Retorna uma coleção de elementos com a mesma classe.
- document.querySelector(‘seletor’) → Retorna o primeiro elemento que corresponde ao seletor CSS.
- document.querySelectorAll(‘seletor’) → Retorna todos os elementos que correspondem ao seletor CSS.
Exemplo prático
Se quisermos acessar e modificar o <h1> da nossa página, podemos fazer assim:
let titulo = document.querySelector("h1");
titulo.innerText = "Aprendendo sobre o DOM!";
Isso altera o texto dentro do <h1>, modificando o conteúdo da página sem precisar recarregá-la.
Como o DOM Funciona?
Agora que entendemos a estrutura hierárquica do DOM, vamos explorar como ele realmente funciona.
Quando um navegador carrega uma página da web, ele segue algumas etapas para processar o código HTML e construir o DOM. Essas etapas são fundamentais para entender como o JavaScript pode manipular a página.
O Processo de Construção do DOM
- O navegador baixa o HTML → Quando um usuário acessa um site, o navegador baixa o código HTML da página.
- O navegador analisa o HTML → Linha por linha, o navegador lê e interpreta o código.
- O DOM é criado → O navegador converte o HTML em uma árvore de elementos interativos (a árvore DOM).
- O CSS é aplicado → O navegador também processa o CSS e ajusta a aparência da página.
- O JavaScript entra em ação → Agora, os scripts podem acessar e modificar o DOM em tempo real.
Exemplo Prático: Como o Navegador Lê um Código
Vamos supor que temos este código HTML simples:
Exemplo DOM
O que é o DOM?
Entendendo o funcionamento do DOM.
Se rodarmos esse código no console do navegador, podemos notar um problema: o document.body pode estar null. Isso acontece porque o JavaScript foi executado antes da página ser carregada completamente.
Para evitar esse problema, usamos o evento DOMContentLoaded:
document.addEventListener("DOMContentLoaded", function() {
console.log(document.body);
});
Esse evento garante que o JavaScript só será executado depois que todo o HTML for carregado.
Manipulação do DOM
A grande vantagem do DOM é que ele permite modificar páginas da web em tempo real sem precisar recarregá-las. Podemos adicionar, remover ou alterar elementos HTML e CSS usando JavaScript.
A seguir, veremos como manipular o DOM de várias maneiras.
Como Selecionar Elementos no DOM
Antes de modificar algo, precisamos selecionar o elemento correto. O JavaScript fornece diferentes métodos para isso:
Selecionar por ID
Se um elemento tiver um id, podemos acessá-lo diretamente:
Bem-vindo ao DOM!
let titulo = document.getElementById("titulo");
console.log(titulo.innerText); // "Bem-vindo ao DOM!"
Selecionar por Classe
Se quisermos selecionar vários elementos com a mesma classe:
Primeiro parágrafo
Segundo parágrafo
let paragrafos = document.getElementsByClassName("texto");
console.log(paragrafos[0].innerText); // "Primeiro parágrafo"
Selecionar por Tag
Podemos pegar todos os elementos de uma tag específica:
let todosParagrafos = document.getElementsByTagName("p");
console.log(todosParagrafos.length); // Número total de na página
Usar Query Selectors
Os métodos querySelector e querySelectorAll permitem selecionar elementos usando seletor CSS:
let titulo = document.querySelector("#titulo"); // Seleciona um elemento com ID 'titulo'
let paragrafos = document.querySelectorAll(".texto"); // Seleciona todos os elementos com a classe 'texto'
Como Alterar Conteúdo
Agora que sabemos selecionar os elementos, podemos alterar seus conteúdos!
Modificar Texto
let titulo = document.getElementById("titulo");
titulo.innerText = "Novo título!";
Modificar HTML Interno
Podemos inserir novas tags dentro de um elemento:
let div = document.getElementById("container");
div.innerHTML = "Texto atualizado!
";
Atenção! innerHTML pode ser perigoso se receber conteúdo de fontes externas, pois pode permitir inserção de código malicioso.
Como Alterar Estilos
Podemos mudar a aparência dos elementos dinamicamente alterando seus estilos via JavaScript:
let titulo = document.getElementById("titulo");
titulo.style.color = "blue"; // Muda a cor do texto para azul
titulo.style.fontSize = "24px"; // Muda o tamanho da fonte
Se quisermos adicionar ou remover classes CSS:
titulo.classList.add("destaque"); // Adiciona uma classe
titulo.classList.remove("destaque"); // Remove uma classe
titulo.classList.toggle("destaque"); // Alterna a classe (se tiver, remove; se não tiver, adiciona)
Como Criar e Remover Elementos
Além de modificar elementos existentes, podemos criar e remover novos elementos dinamicamente.
Criar um Novo Elemento
let novoParagrafo = document.createElement("p");
novoParagrafo.innerText = "Este é um novo parágrafo.";
document.body.appendChild(novoParagrafo); // Adiciona ao final do
Remover um Elemento
let elemento = document.getElementById("titulo");
elemento.remove(); // Remove o elemento
Como Responder a Eventos
O DOM permite capturar interações do usuário, como cliques, teclas pressionadas e movimento do mouse.
Adicionar um Evento de Clique
let botao = document.getElementById("botao");
botao.addEventListener("click", function() {
alert("Botão clicado!");
});
Capturar Teclas Pressionadas
document.addEventListener("keydown", function(event) {
console.log("Tecla pressionada: " + event.key);
});
Conclusão
O DOM é a espinha dorsal do desenvolvimento web interativo. Ele permite que JavaScript modifique páginas da web de maneira dinâmica, criando experiências mais ricas para os usuários.
Ao dominar o DOM, você poderá criar sites mais interativos, responsivos e dinâmicos. E o melhor: todas essas mudanças acontecem sem precisar recarregar a página!
Como se tornar um desenvolvedor Web?
Certamente deve estar animado para começar a sua jornada, saiba que estou focado para fazer conteúdos excepcionais que irão te ajudar! Então não perca tempo e cadastre-se logo abaixo para não perder nenhuma novidade e ficar sempre por dentro