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
document.createElement('nome tag');
Esempio
Creiamo un paragrafo, impostiamogli del testo
e inseriamolo nella pagina alla fine del blocco #parent:
<div id="parent">
<p>1</p>
<p>2</p>
<p>3</p>
</div>
let parent = document.querySelector('#parent');
let p = document.createElement('p');
p.textContent = '!';
parent.appendChild(p);
Risultato dell'esecuzione del codice:
<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:
<ul id="parent"></ul>
let 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:
<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:
<ul id="parent"></ul>
let 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