DOM Element.innerHTML: como alterar um conteúdo de uma tag HTML

Nesta documentação você aprenderá sobre a propriedade innerHTML e como você pode utilizá-la para alterar um conteúdo de uma tag HTML através do uso da linguagem JavaScript para manipulação do DOM.

O que é o innerHTML?

O innerHTML é uma propriedade do Element que define ou retorna o conteúdo HTML de um elemento.

Essa propriedade geralmente é escrita no DOM (Document Object Model), através do JavaScript.

Como utilizar o innerHTML?

O innerHTML pode ser usado para receber o conteúdo de um elemento HTML ou para definir um novo conteúdo para ele.

Para isso, podemos utilizar a sintaxe do DOM (document.getElement) para realizar essas ações através do JavaScript.

innerHTML: na prática

// Troca o conteúdo do elemento body por uma string vazia document.body.innerHTML = “ “;

Sintaxe

//innerHTML utilizado para receber o conteúdo de um elemento HTML: let conteudo = document.element.innerHTML
//innerHTML utilizado para adicionar um conteúdo a um elemento HTML: document.element.innerHTML = conteudo

Exemplos de uso do innerHTML

Exemplo 1

Nos Códigos 1 e 2 temos um exemplo que demonstra o innerHTML aplicado para obter o conteúdo de um elemento HTML e logo depois adicionar este mesmo conteúdo em outro elemento HTML.

<body> <h1>Exemplo de uso da propriedade innerHTML</h1> <p id="paragrafo"'><i>Devmedia.</i></p> <p>O conteúdo do parágrafo acima é: <strong id="conteudo"></strong></p> </body>
Código 1. Código HTML
let conteudoParagrafoHTML = document.getElementById("paragrafo").innerHTML; document.getElementById("conteudo").innerHTML = conteudoParagrafoHTML
Código 2. Código JavaScript
See the Pen Exemplo 1 - innerHTML by Wladimir Batista Castro (@wladimirrj) on CodePen.

Note que após selecionarmos o elemento através do ID utilizamos a propriedade innerHTML para que a variável conteudoParagrafoHTML receba o conteúdo do elemento selecionado.

O conteúdo acessado pelo innerHTML inclui tudo dentro do elemento <p>, incluindo as tags HTML.

Desse modo, o valor armazenado na variável conteudoParagrafoHTML será: <i>DevMedia</i> e através dessa variável podemos adicionar esse conteúdo dentro de outro elemento HTML, como pode ser visto no Código 2.

Exemplo 2

Nos Códigos 3 e 4 temos um exemplo que mostra o innerHTML utilizado para alterar o conteúdo de dois elementos simultaneamente.

<body> <h1>Exemplo de uso da propriedade innerHTML</h1> <p id="paragrafo">Isso é um parágrafo.</p> <div id="div">Isso é uma div.</div> </body>
Código 3. Código HTML
let texto = "Olá Mundo!!!"; document.getElementById("paragrafo").innerHTML = `<i>$</i>`; document.getElementById("div").innerHTML = `<strong>$</strong>`;
Código 4. Código JavaScript
See the Pen Exemplo 3 - innerHTML by Wladimir Batista Castro (@wladimirrj) on CodePen.

Note que os conteúdos dos elementos HTML (parágrafo e div) serão alterados simultaneamente de forma automática.

Veja nas linhas 2 e 3 do Código 4 que também podemos adicionar outros elementos HTML (tags), dentro do elemento selecionado. Esta ação pode ser realizada com o uso de Template Strings.

Exemplo 3

Nos Códigos 5 e 6 temos um exemplo que demonstra o innerHTML aplicado em uma função JS com o intuito de alterar o conteúdo de um elemento HTML após o clique no botão.

<body> <h1>Exemplo de uso da propriedade innerHTML</h1> <button onclick="mudarConteudo()">Clique aqui para mudar o conteúdo do parágrafo abaixo</button> <p id="paragrafo">Este é o conteúdo padrão!</p> </body>
Código 5. Código HTML
function mudarConteudo() { document.getElementById("paragrafo").innerHTML = "O conteúdo foi alterado!"; }
Código 6. Código JavaScript
See the Pen Exemplo 3 - innerHTML by Wladimir Batista Castro (@wladimirrj) on CodePen.

Note que neste exemplo o innerHTML foi aplicado para alterar o conteúdo padrão do parágrafo selecionado.

A alteração do conteúdo do parágrafo será realizada quando o botão for clicado.

Exemplo 4

Nos Códigos 7 e 8 temos um exemplo que demonstra a utilização do innerHTML para “deletar” o conteúdo de um elemento HTML.

<body> <h1>Exemplo de uso da propriedade innerHTML</h1> <p id="paragrafo">Clique no botão abaixo para "deletar" o conteúdo deste elemento HTML.</p> <button onclick="deletarConteudo()">Clique aqui</button> </body>
Código 7. Código HTML
function deletarConteudo() { document.getElementById("paragrafo").innerHTML = ""; }
Código 8. Código JavaScript
See the Pen Exemplo 4 - innerHTML by Wladimir Batista Castro (@wladimirrj) on CodePen.

Note que ao acionarmos a função do Código 8 o innerHTML que encontra-se dentro da função vai “deletar” o conteúdo do elemento <p>.

Visualmente essa ação dá a impressão de que o conteúdo do elemento <p> foi deletado, mas na verdade o innerHTML simplesmente altera o conteúdo do parágrafo.

Compatibilidade com navegadores

O innerHTML é compatível com todos os navegadores apresentados na tabela abaixo:

innerHTML Chrome IE Edge Firefox Safari Opera
Sim Sim Sim Sim Sim Sim

Artigos relacionados