Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

JavaScript no Navegador: Scripts, o DOM e Eventos

HTML e CSS produzem páginas estáticas. Para que a página faça algo — reagir a um clique, buscar dados de um servidor, atualizar o conteúdo sem recarregar — precisamos de JavaScript.

O navegador executa JavaScript no contexto da página. O script pode acessar e modificar os elementos HTML através de uma API chamada DOM (Document Object Model). O DOM é uma representação em árvore do documento HTML: cada elemento é um nó, e os nós têm relações de pai-filho que espelham o aninhamento das tags.

Selecionando e modificando elementos

Adicione um <script> antes do </body>:

<script>
  const button = document.querySelector("button");
  console.log(button.textContent);
</script>

document.querySelector("button") busca o primeiro <button> no DOM e retorna uma referência a ele. A partir dessa referência, você pode ler atributos (button.textContent), modificar estilos (button.style.background = "red"), adicionar classes (button.classList.add("active")) — qualquer propriedade do elemento está acessível.

Respondendo a eventos

Um evento é algo que acontece na página: um clique, um movimento do mouse, uma tecla pressionada, o carregamento de um recurso. Para reagir a um evento, usamos addEventListener:

<script>
  const button = document.querySelector("button");

  button.addEventListener("click", () => {
    button.textContent = "Confirmado ✓";
    button.style.background = "#38a169";
  });
</script>

Código 6-5: Script que altera o botão RSVP ao ser clicado.

Clique no botão. O texto muda para “Confirmado ✓” e a cor fica verde. O JavaScript modificou o DOM em tempo real, sem recarregar a página.

O primeiro argumento de addEventListener é o nome do evento ("click"). O segundo é uma função callback — o código que executa quando o evento acontece. Essa função recebe um objeto event com detalhes (posição do mouse, tecla pressionada, elemento que disparou o evento), mas aqui não precisamos dele.