Metóda createElement

Metóda createElement umožňuje vytvoriť nový element odovzdaním názvu tagu ako parameter. Po vytvorení s ním možno pracovať ako s obyčajným elementom a tiež ho možno pridať na stránku metódami prepend, append, appendChild, insertBefore alebo insertAdjacentElement.

Ak sa výsledok práce createElement zapíše do premennej, potom v tejto premennej bude taký element, akoby sme ho získali cez querySelector alebo getElementById. Jediný rozdiel - náš element nebude umiestnený na stránke. Inak mu môžeme meniť innerHTML, atribúty, pridávať mu obslužné metódy udalostí a nakoniec ho umiestniť na stránku.

Syntax

javascriptdocument.createElement('názov tagu');

Príklad

Vytvorme odsek, nastavme mu text a umiestnime ho na stránku na koniec bloku #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);

Výsledok vykonania kódu:

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

Príklad

Daný je ul. Umiestnime do neho 9 tagov li, pričom ich textom urobme poradové čísla:

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

Výsledok vykonania kódu:

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>

Príklad

Pri vkladaní elementov im pridajme obslužné metódy udalostí:

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

Результат:

Pozri tiež

  • metóda cloneNode,
    pomocou ktorej možno klonovať element
  • metóda createTextNode,
    pomocou ktorej možno vytvoriť nový textový uzol