SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
06.04.2025

Transformando uma String JS em um Objeto HTML: Buscando e Estilizando

Resposta Rápida

Se você não tem muito tempo, aqui está uma solução rápida para a sua tarefa:

const str = '<div>Este é um conteúdo HTML</div>';
const htmlObject = new DOMParser().parseFromString(str, 'text/html').body.firstChild;

Com isso, você extrai o elemento HTML diretamente da string. Não é mágica; é a capacidade da classe DOMParser.

Do Simples ao Complexo: Diferentes Métodos

Se você precisa converter um texto simples sem tags HTML, use o método createTextNode:

const textStr = 'Lágrimas de um unicórnio';  // Nenhum unicórnio foi ferido, claro...
const textNode = document.createTextNode(textStr);
document.body.appendChild(textNode);  // ...o texto é apenas para exemplo.

Ao usar esse método, você elimina o risco de ataques XSS, já que as tags HTML não são executadas.

Se você precisar converter uma string com nós e atributos HTML em um objeto DOM:

  1. Crie um elemento container:

    var container = document.createElement('div');
  2. Atribua seu código HTML dentro do container:

    container.innerHTML = '<p>Pó Mágico</p>';
  3. Insira o conteúdo do container no DOM:

    var newElement = container.firstChild;
    document.body.appendChild(newElement);

Fundamentos da Dinâmica: Substituindo Valores "Na Hora"

Utilizando template literals, você pode inserir valores dinamicamente:

const criaturaMítica = 'Dragão';
const mensagem = `<div>${criaturaMítica}, respire fogo!</div>`;
container.innerHTML = mensagem;

Alterando o Estilo do Elemento

Para mudar o estilo de um elemento, use a propriedade style:

newElement.style.marginTop = '10px';  // O elemento vai subir 10px.
newElement.style.color = 'blue';       // O elemento ficará azul.

Visualização

Vamos representar visualmente a transformação de uma string JavaScript em um objeto HTML:

Etapa 1: Material Fonte (String)
🔠 - "<div>Olá, mundo</div>"

Agora, vamos converter a string em um objeto:

var htmlString = "<div>Olá, mundo</div>";
var htmlObject = new DOMParser().parseFromString(htmlString, 'text/html').body.firstChild;

E obtemos o seguinte resultado:

Etapa 2: Resultado Final (Objeto HTML)
🏗️🏠 - [🚪 "Olá, mundo" 🖼️]

DOMParser é sua ferramenta para converter strings em HTML "vivo".

jQuery: Uma Varinha Mágica

Se você está usando jQuery, fica ainda mais simples:

const $htmlObject = $('<div>').html('<p>Mágica com jQuery</p>');
$('body').append($htmlObject);

Agora, $htmlObject é um elemento HTML completo no contexto do jQuery.

Cuidado com Armadilhas Perigosas

Lembre-se de que se seu elemento tiver um ID:

  • Adicione o elemento ao DOM antes de usar o método getElementById.
  • Lembre-se de que IDs devem ser únicos dentro do documento.

Experimente

Você pode praticar em nosso "sandbox" interativo: Transformar String em Objeto HTML.

Objeto HTML: Suas Novas Possibilidades

Após converter uma string JavaScript em um objeto HTML, você ganha total controle sobre ele:

  • Você pode atribuir tarefas a ele:

    newElement.addEventListener('click', (e) => { console.log('Feito!'); });
  • Você pode enfeitá-lo com atributos:

    newElement.setAttribute('data-custom', 'valor');

Alvo de Todos os Elementos

Se sua string resultou em múltiplos elementos, você pode trabalhar com cada um deles assim:

const minions = Array.from(htmlObject.children);
minions.forEach((minion) => {
  // Trabalhe com cada elemento...
});

Recursos Úteis

  1. DOMParser - Web API | MDN — Aprenda sobre a classe DOMParser e converter strings em objetos HTML.
  2. Document: createElement() method - Web API | MDN — Descubra como criar elementos HTML usando o método createElement do JavaScript.
  3. Element: innerHTML property - Web API | MDN — Manipule HTML de forma segura por meio de string usando a propriedade innerHTML.
  4. .html() | jQuery API Documentation — Domine o trabalho com strings HTML em jQuery.
  5. Template Literals - JavaScript | MDN — Crie HTML dinâmico usando template literals.
  6. javascript - Turning an HTML string into DOM elements? - Stack Overflow — Ganhe insights da comunidade de desenvolvedores sobre como converter strings HTML em elementos DOM.
  7. JavaScript DOM HTML — Aprenda como criar e modificar HTML usando métodos DOM do JavaScript.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!