Criar nós e elementos

Podemos criar nós e elementos e adicioná-los ao DOM com os seguintes métodos:

MétodoDescrição
document.createElement()Cria um elemento
document.createAttribute()Cria um nó do tipo atributo
document.createComment()Cria um nó do tipo comentário
document.createTextNode()Cria um nó do tipo texto
element.appendChild()Adiciona um nó como último filho do elemento element
element.insertBefore()Insere um nó filho do elemento element antes de um nó filho existente
element.insertAdjacentElement()Insere um elemento como filho do elemento element numa determinada
posição
element.insertAdjacentText()Insere texto como filho do elemento element numa determinada posição
element.insertAdjacentHTML()Insere texto de HTML como filho do elemento element numa determinada posição
element.setAttribute()Atribui um atributo ao elemento element
element.setAttributeNode()Adiciona um nó de atributo ao elemento element

document.createElement()

Adiciona um nó de atributo ao elemento element

Sintaxe:

document.createElement(elem)

elem: nome do elemento a criar

NOTA 1: o elemento é criado mas não adicionado ao DOM

NOTA 2: se se pretender criar um elemento que tenha texto, por exemplo, tem de se criar o nó de texto e adicioná-lo ao elemento criado.

Exemplo:

<body> 
   <div id='div1'></div> 
   <script> 
      let p = document.createElement("P"); 
      let text = document.createTextNode("Linha A"); 
      p.appendChild(text); 
      let div1 = document.getElementById('div1'); 
      div1.appendChild(p); 
   </script> 
</body> 

Este exemplo cria um elemento P, um nó de texto, adiciona o nó de texto ao elemento p criado e adiciona o elemento P a uma DIV com o id ‘div1’.

document.createAttribute()

Cria um atributo com um determinado nome.

Sintaxe:

document.createAttribute(atributo)

atributo: nome do atributo

NOTA 1: Após criar o atributo deve usar o método atribute.value para definir o valor do atributo.

NOTA 2: Após criar o atributo deve usar o método element.setAttributeNode() para atribuir o atributo ao elemento.

NOTA 3: Uma alternativa ao método document.createAttribute() é o método element.setAttribute().

Exemplo:

<head> 
   <title>CreateAttribute</title> 
   <style> 
      .green{ 
         color: green; 
         font-weight: bold; 
      } 
   </style> 
</head> 
<body> 
   <p id='p1'>Linha 1</p> 
   <script> 
      let p = document.getElementById('p1'); 
      //cria atributo: 
      let atr = document.createAttribute('class'); 
      //define valor do atributo 
      atr.value = 'green'; 
      //atribui o atributo ao elemento P: 
      p.setAttributeNode(atr); 
   </script> 
</body> 

document.createComment()

Cria um nó de comentário com um determinado texto.

Sintaxe:

document.createComment(text)

text: texto do comentário


Exemplo:

var comment = document.createComment("Texto do comentário"); 
//adiciona o comentário ao corpo do documento: 
document.body.appendChild(comment);

document.createTextNode()

Cria um nó de text com um determinado texto.

Sintaxe:

document.createTextNode(text)

text: texto do nó de texto

Exemplo:

<body>  
   <script> 
      //cria um elemento P: 
      let p = document.createElement('P'); 
       //cria um nó de texto: 
      let txt = document.createTextNode('Linha de texto'); 
      //adiciona o nó de texto ao elemento P: 
      p.appendChild(txt); 
      //adiciona o elemento P ao corpo do documento: 
      document.body.appendChild(p); 
   </script> 
</body> 

element.appendChild()

Adiciona o elemento elem como último filho do elemento element.

Sintaxe:

element.appendChild(elem)

elem: elemento a ser adicionado


Exemplo:

<body>  
   <script> 
      //cria um elemento P: 
      let p = document.createElement('P'); 
      //cria um nó de texto: 
      let txt = document.createTextNode('Linha de texto'); 
      //adiciona o nó de texto ao elemento P: 
      p.appendChild(txt); 
      //adiciona o elemento P ao corpo do documento: 
      document.body.appendChild(p); 
    </script> 
</body> 

element.insertBefore()

Adiciona o elemento elem como filho do elemento element, antes do filho child.

Sintaxe:

element.appendChild(elem, child)

elem: elemento a ser adicionado

child: filho existente do elemento element

Exemplo:

<body>  
    <ul> 
        <li>Item 1</li> 
        <li>Item 2</li> 
    </ul> 
    <script> 
        //cria um elemento LI: 
        let li = document.createElement('LI'); 
        //cria um nó de texto: 
        let txt = document.createTextNode('Item 3'); 
        //adiciona o nó de texto ao elemento LI: 
        li.appendChild(txt); 
        //seleciona o elemento UL: 
        let ul = document.getElementsByTagName('UL')[0]; 
        //insere o elemento LI antes do 1º filho do elemento UL: 
        ul.insertBefore(li, ul.childNodes[0]);  
    </script> 
</body> 

element.insertAdjacentElement()

Insere o elemento elem no elemento element, na posição pos.

Sintaxe:

element.insertAdjacentElement(pos, elem)
pos: posição onde o elemento é inserido
valores possíveis: “afterbegin”, “afterend”, “beforebegin”, “beforeend”
elem: elemento a ser inserido

Exemplo:

<body>  
   <h1>Cabeçalho</h1> 
   <span>Este é um </span> 
   <script> 
      //seleciona o elemento H1: 
      let h1 = document.getElementsByTagName('H1')[0]; 
      //seleciona o elemento SPAN: 
      let span = document.getElementsByTagName('SPAN')[0]; 
      //insere o elemento SPAN no inicio do elemento H1: 
      h1.insertAdjacentElement('afterbegin', span); 
   </script> 
</body> 

element.insertAdjacentText()

Insere o texto text na posição pos, relativamente ao elemento element.

Sintaxe:

element.insertAdjacentText(pos, text)

pos: posição relativa ao elemento elem onde o elemento é inserido
valores possíveis: “afterbegin”, “afterend”, “beforebegin”, “beforeend”
text: texto a ser inserido

Exemplo:

<body>  
   <h1>Cabeçalho</h1> 
   <script> 
      //seleciona o elemento H1: 
      let h1 = document.getElementsByTagName('H1')[0]; 
      //insere o texto antes do elemento H1: 
      h1.insertAdjacentText('beforebegin', 'Linha de texto'); 
   </script> 
</body>

element.insertAdjacentHTML()

Insere o texto de HTML html na posição pos, relativamente ao elemento element.

Sintaxe:

element.insertAdjacentHTML(pos, html)

pos: posição relativa ao elemento elem onde o elemento é inserido
valores possíveis: “afterbegin”, “afterend”, “beforebegin”, “beforeend”
html: texto de HTML a ser inserido

Exemplo:

<body>  
    <h1>Cabeçalho</h1> 
 
    <script> 
        //seleciona o elemento H1: 
        let h1 = document.getElementsByTagName('H1')[0]; 
  
        //insere o texto de HTML antes do elemento H1: 
        h1.insertAdjacentHTML('beforebegin', '<p>Linha de texto 1</p>'); 
    </script> 
</body>

element.setAttribute()

Atribui um atributo e respectivo valor ao elemento element.

Sintaxe:

element.setAttribute(atributo, valor)

atributo: nome do atributo
valor: valor do atributo atributo

Exemplo:

<head> 
    <title>CreateAttribute</title> 
    <style> 
        .green{ 
            color: green; 
            font-weight: bold; 
        } 
    </style> 
</head> 
<body>
 <h1>Cabeçalho</h1> 
 
    <script> 
        //seleciona o elemento H1: 
        let h1 = document.getElementsByTagName('H1')[0]; 
  
        //atribui o atributo ‘class’ com o valor ‘green’ao 
elemento H1: 
        h1.setAttribute('class', 'green'); 
    </script> 
</body>

element.setAttributeNode()

Adiciona um nó de atributo ao elemento element.

Sintaxe:

element.setAttribute(no)

no: nó de atributo

Exemplo:

<head> 
    <title>CreateAttribute</title> 
    <style> 
        .green{ 
            color: green; 
            font-weight: bold; 
        } 
    </style> 
</head> 
<body>  
    <h1>Cabeçalho</h1> 
 
    <script>
      //seleciona o elemento H1: 
      let h1 = document.getElementsByTagName('H1')[0]; 
      //cria nó de atributo com o nome ‘class’: 
      let node = document.createAttribute('class'); 
      //atribui o valor ‘green’ ao nó: 
      node.value = 'green' 
      //adiciona o nó de atributo ao elemento H1: 
      h1.setAttributeNode(node); 
   </script> 
</body>