Page cover

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


🔼 Subindo

Retorna o pai do elemento.

🔽 Descendo

Pega os filhos diretos de um elemento.

🔁 Lateral (irmãos)


⚠️ 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 querySelector sempre que possível: simples e moderno.

  • Use .children ao invés de .childNodes se quiser apenas elementos.

  • Teste se o elemento existe antes de usá-lo:


🚫 Más práticas

  • Usar seletores genéricos demais (document.getElementsByTagName("*"))

  • Usar innerHTML para navegar (não é para isso!)

  • Contar com childNodes sem verificar se é um texto ou espaço

  • Usar for direto em HTMLCollection sem transformar em array


🤖 Dica: transforme coleções em arrays


🧠 Resumo

Ação
Método

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