Metoda createElement

Metoda createElement omogoča ustvarjanje novega elementa z podajanjem imena oznake kot parameter. Po ustvarjanju je z elementom moč delovati kot z običajnim elementom, prav tako ga je moč dodati na stran z metodami prepend, append, appendChild, insertBefore ali insertAdjacentElement.

Če rezultat delovanja createElement zapišemo v spremenljivko, bo v tej spremenljivki tak element, kot da bi ga pridobili z querySelector ali getElementById. Edina razlika je - naš element ne bo nameščen na strani. Sicer pa lahko spreminjamo njegov innerHTML, atribute, dodajamo pripravljalnike dogodkov in ga na koncu namestimo na stran.

Sintaksa

javascriptdocument.createElement('ime oznake');

Primer

Ustvarimo odstavek, nastavimo mu besedilo in ga postavimo na stran na konec bloka #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);

Rezultat izvajanja kode:

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

Primer

Podan je ul. Postavimo vanj 9 oznak li, pri čemer naj bodo njihova besedila zaporedne številke:

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

Rezultat izvajanja kode:

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>

Primer

Pri vstavljanju elementov jim privežimo pripravljalnike dogodkov:

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

Результат:

Glejte tudi

  • metoda cloneNode,
    ki omogoča kloniranje elementa
  • metoda createTextNode,
    ki omogoča ustvarjanje novega besedilnega vozlišča