Metodo createElement

Il metodo createElement consente di creare un nuovo elemento, passando il nome del tag come parametro. Dopo la creazione, è possibile lavorare con l'elemento come con un normale elemento, e può anche essere aggiunto alla pagina con i metodi prepend, append, appendChild, insertBefore o insertAdjacentElement.

Se si memorizza il risultato di createElement in una variabile, in quella variabile ci sarà un elemento come se lo avessimo ottenuto tramite querySelector o getElementById. L'unica differenza è che il nostro elemento non sarà posizionato sulla pagina. Per il resto, possiamo modificarne l'innerHTML, gli attributi, aggiungere gestori di eventi e infine posizionarlo sulla pagina.

Sintassi

javascriptdocument.createElement('nome tag');

Esempio

Creiamo un paragrafo, impostiamogli del testo e inseriamolo nella pagina alla fine del blocco #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);

Risultato dell'esecuzione del codice:

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

Esempio

Dato un ul. Inseriamo al suo interno 9 tag li, e impostiamo i numeri ordinali come loro testo:

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);
}

Risultato dell'esecuzione del codice:

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>

Esempio

Durante l'inserimento degli elementi, associamo loro dei gestori di eventi:

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);
};

Результат:

Vedi anche

  • metodo cloneNode,
    che può essere utilizzato per clonare un elemento
  • metodo createTextNode,
    che può essere utilizzato per creare un nuovo nodo di testo