1
resposta

Dúvida sobre createElemente

Boa tarde. Fiquei em dúvida em qual seria a diferença em desenvolver o código dessas duas formas, se há alguma preferência ou utilidade em situações espcífica, por exemplo:

  const video = document.createElement("li");
  video.className = "videos__item";
  video.innerHTML = `
  <iframe width="100%" height="72%" src="https://www.youtube.com/embed/OrnUhR41MYI"
                title="Voltando ao mercado após a maternidade: Ana Silvério" frameborder="0"
                allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
                allowfullscreen></iframe>
            <div class="descricao-video">
                <img src="./img/logo.png" alt="logo canal alura">
                <h3>Voltando ao mercado após a mmaternidade: Ana Silvério</h3>
                <p>618 visualizações</p>
            </div>
  `;

onde cria um elemento li e coloca o HTML dentro dele ao invés de fazer isso:

lista.innerHTML=
`
<li class="videos__item">
            <iframe width="100%" height="72%" src="https://www.youtube.com/embed/OrnUhR41MYI"
                title="Voltando ao mercado após a maternidade: Ana Silvério" frameborder="0"
                allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
                allowfullscreen></iframe>
            <div class="descricao-video">
                <img src="./img/logo.png" alt="logo canal alura">
                <h3>Voltando ao mercado após a mmaternidade: Ana Silvério</h3>
                <p>618 visualizações</p>
            </div>
        </li>`
1 resposta

Oi Ricardo, tudo bem?

A diferença entre as duas formas é que, ao utilizar o método createElement, você está criando um novo elemento HTML e, em seguida, adicionando as propriedades e conteúdo desejados a ele. Já ao utilizar a propriedade innerHTML, você está definindo o conteúdo HTML diretamente em um elemento já existente.

A escolha entre as duas formas pode depender do contexto e do objetivo do seu código. Por exemplo, se você precisa adicionar vários elementos dinamicamente, pode ser mais fácil criar novos elementos com createElement e adicioná-los ao DOM. Já se você precisa apenas definir o conteúdo de um elemento já existente, pode ser mais simples utilizar innerHTML.

Espero ter ajudado.

Um abraço e bons estudos.