Método createElement

O método createElement permite criar um novo elemento passando o nome da tag como parâmetro. Após a criação, é possível trabalhar com o elemento como um elemento normal, e também é possível adicioná-lo à página com os métodos prepend, append, appendChild, insertBefore ou insertAdjacentElement.

Se o resultado do createElement for armazenado em uma variável, essa variável conterá um elemento como se tivéssemos obtido ele através do querySelector ou do getElementById. A única diferença - nosso elemento não estará posicionado na página. Fora isso, podemos alterar seu innerHTML, atributos, adicionar event listeners e finalmente posicioná-lo na página.

Sintaxe

javascriptdocument.createElement('nome da tag');

Exemplo

Vamos criar um parágrafo, definir seu texto e colocá-lo na página no final do bloco #parent:

html<div id="parent">
  <p>1</p>
  <p>2</p>
  <p>3</p>
</div>
javascriptlet parent = document.querySelector('#parent');

let p = document.createElement('p');
p.textContent = '!';

parent.appendChild(p);

Resultado da execução do código:

html<div id="parent">
  <p>1</p>
  <p>2</p>
  <p>3</p>
  <p>!</p>
</div>

Exemplo

Dado um ul. Vamos colocar nele 9 tags li, sendo que seus textos serão os números ordinais:

html<ul id="parent"></ul>
javascriptlet parent = document.querySelector('#parent');

for (let i = 1; i <= 9; i++) {
  let li = document.createElement('li');
  li.textContent = i;
  parent.appendChild(li);
}

Resultado da execução do código:

html<ul id="parent">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>8</li>
  <li>9</li>
</ul>

Exemplo

Vamos adicionar event listeners aos elementos durante a inserção:

html<ul id="parent"></ul>
javascriptlet parent = document.querySelector('#parent');

for (let i = 1; i <= 9; i++) {
  let li = document.createElement('li');
  li.textContent = i;
  
  li.addEventListener('click', function() {
    alert(this.textContent);
  });
  
  parent.appendChild(li);
};

Результат:

Veja também

  • método cloneNode,
    que pode ser usado para clonar um elemento
  • método createTextNode,
    que pode ser usado para criar um novo nó de texto