8.5 - Aprofundando na navegação pelo DOM
🧭 Aprofundando na navegação pelo DOM
🧭 Aprofundando na navegação pelo DOM
Se o DOM é um mapa da sua página, então navegar por ele é como explorar os cômodos de uma casa. 🏠✨
Vamos aprender a andar por essa casa, descobrir quem são os pais, filhos e vizinhos, e como encontrar qualquer parte da sua página com JavaScript.
🧼 Selecionando elementos no DOM
Antes de navegar, precisamos saber como encontrar o ponto de partida. Isso se chama selecionar um elemento.
🔹 1. Por ID
<p id="meuTexto">Olá, mundo!</p>const el = document.getElementById("meuTexto");✅ Rápido e eficiente ⚠️ IDs devem ser únicos!
🔹 2. Por tag (nome da tag)
<p>Primeiro</p>
<p>Segundo</p>const paragrafos = document.getElementsByTagName("p");🔁 Retorna uma coleção de todos os <p> da página!
🔹 3. Por class
🔹 4. Por name
Útil em formulários:
🔹 5. Por seletor CSS (mais flexível)
💡 querySelector → retorna o primeiro
💡 querySelectorAll → retorna todos
🧭 Navegando pela estrutura do DOM
🔼 Subindo
Retorna o pai do elemento.
🔽 Descendo
Pega os filhos diretos de um elemento.
🔁 Lateral (irmãos)
🧩 Navegando pelos nós (textos, espaços e comentários)
⚠️ Diferente de .children — esses incluem textos e espaços em branco!
💡 Exemplo real
🧨 Comportamento inesperado
🧠 Solução: use .children se quiser só os elementos HTML.
✅ Boas práticas
Use
querySelectorsempre que possível: simples e moderno.Use
.childrenao invés de.childNodesse quiser apenas elementos.Teste se o elemento existe antes de usá-lo:
🚫 Más práticas
Usar seletores genéricos demais (
document.getElementsByTagName("*"))Usar
innerHTMLpara navegar (não é para isso!)Contar com
childNodessem verificar se é um texto ou espaçoUsar
fordireto emHTMLCollectionsem transformar em array
🤖 Dica: transforme coleções em arrays
🧠 Resumo
Selecionar por ID
getElementById("id")
Selecionar por classe
getElementsByClassName("classe")
Selecionar por tag
getElementsByTagName("tag")
Seletor moderno CSS
querySelector("seletor")
Ir para pai
parentNode
Ir para filhos
children, firstElementChild
Ir para irmãos
nextElementSibling, previousElementSibling
Incluir nós de texto
childNodes
🧪 Exercício rápido
Tente usar o console do navegador para rodar isso em qualquer site:
🌐 Curiosidade
Muitos recursos modernos do DOM são baseados no CSS. Ou seja, saber CSS ajuda você a navegar melhor no DOM! 😉
Atualizado


