Atualizado: 21/06/2025

Este conteúdo é original e não foi gerado por inteligência artificial.

Trabalhando com Elementos do DOM em JavaScript

Ao trabalhar com elementos em uma página web, podemos utilizar tanto a funcionalidade do tipo Node, que representa qualquer nó da página, quanto a funcionalidade do tipo HTMLElement, que representa especificamente os elementos. Ou seja, os objetos HTMLElement são essencialmente os mesmos nós, sendo objetos Node cujo tipo de nó (nodeType) é igual a 1.

Cada elemento em uma página web corresponde a um tipo específico em JavaScript. Estes tipos são subtipos de HTMLElement, que define a funcionalidade básica dos elementos. Vamos listar brevemente os tipos de elementos mais relevantes:

  • HTMLAnchorElement: <a>
  • HTMLButtonElement: <button>
  • HTMLDivElement: <div>
  • HTMLFormElement: <form>
  • HTMLHeadingElement: <h1>, <h2>, <h3>, <h4>, <h5>, <h6>
  • HTMLIFrameElement: <iframe>
  • HTMLImageElement: <img>
  • HTMLInputElement: <input>
  • HTMLLIElement: <li>
  • HTMLOListElement: <ol>
  • HTMLParagraphElement: <p>
  • HTMLScriptElement: <script>
  • HTMLSelectElement: <select>
  • HTMLSpanElement: <span>
  • HTMLTableElement: <table>
  • HTMLTableCellElement: <td>
  • HTMLTextAreaElement: <textarea>
  • HTMLUListElement: <ul>

Podemos identificar o tipo de um elemento usando o método Object.getPrototypeOf():

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Programício</title>
  </head>
  <body>
    <h1 id="header">Home Page</h1>
    <script>
      const header = document.getElementById("header");
      console.log(Object.getPrototypeOf(header)); // HTMLHeadingElement
    </script>
  </body>
</html>

Propriedades de Elementos

O tipo Element fornece uma série de propriedades que armazenam informações sobre o elemento, facilitando a interação e manipulação de conteúdo dinâmico em uma página web.

  • tagName: retorna a tag do elemento em maiúsculas. Por exemplo, para um elemento <h1>, tagName retornará "H1".
  • textContent e innerText: são usadas para acessar ou modificar o conteúdo de texto de um elemento. A diferença entre elas é que textContent retorna o texto de todos os elementos, <script>, <style> e textos ocultos, enquanto innerText retorna somente o texto visível.
  • innerHTML: retorna ou define o conteúdo HTML de um elemento.

Uma das propriedades mais importantes é a propriedade tagName, que retorna o nome da tag do elemento em maiúsculas. Por exemplo, no exmplo anterior, header.tagName retornará "H1".

Gerenciando o Conteúdo HTML

A propriedade innerHTML permite acessar ou modificar o HTML interno de um elemento. Isso inclui as tags, permitindo a inserção de novos elementos HTML dinamicamente.

Por exemplo, se quisermos inserir um <span> com texto colorido dentro de um cabeçalho, podemos usar innerHTML:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Programício</title>
  </head>
  <body>
    <h1 id="header">Home Page</h1>
    <script>
      const header = document.getElementById("header");
      // obtendo o HTML do elemento
      console.log(header.innerHTML); // Home Page
      // modificando o HTML do elemento
      header.innerHTML = "<span style='color:navy;'>Hello World</span>";
    </script>
  </body>
</html>

Gerenciando o Conteúdo de Texto

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Programício</title>
  </head>
  <body>
    <h1 id="header">Home Page</h1>
    <script>
      const header = document.getElementById("header");

      console.log(header.textContent); // Home Page
      header.textContent = "Hello World";
      console.log(header.textContent); // Hello World

      console.log(header.innerText); // Hello World
      header.innerText = "Hello World2";
      console.log(header.innerText); // Hello World2
    </script>
  </body>
</html>

É importante notar que nem textContent nem innerText conseguem mudar ou acessar o código HTML. Por exemplo, essa atribuição mudaria apenas o texto do elemento, mas não alteraria o HTML interno do elemento:

header.innerText = "<span style='color: navy'>Hello World</span>";
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com