Metoda createElement

Metoda createElement pozwala utworzyć nowy element, przekazując w parametrze nazwę znacznika. Po utworzeniu z elementem można pracować jak ze zwykłym elementem, a także można go dodać na stronę metodami prepend, append, appendChild, insertBefore lub insertAdjacentElement.

Jeśli zapiszemy wynik działania createElement w zmiennej, to w tej zmiennej będzie taki element, jakbyśmy otrzymali go przez querySelector lub getElementById. Jedyna różnica - nasz element nie będzie umieszczony na stronie. Poza tym możemy zmieniać mu innerHTML, atrybuty, dodawać procedury obsługi zdarzeń i w końcu umieścić go na stronie.

Składnia

javascriptdocument.createElement('nazwa znacznika');

Przykład

Stwórzmy akapit, ustawmy mu tekst i umieśćmy na stronie na końcu 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);

Wynik wykonania kodu:

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

Przykład

Dany jest ul. Umieśćmy w nim 9 znaczników li, przy czym ich tekstem uczyńmy numery porządkowe:

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

Wynik wykonania kodu:

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>

Przykład

Przy wstawianiu elementów dodawajmy do nich procedury obsługi zdarzeń:

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

Результат:

Zobacz też

  • metoda cloneNode,
    za pomocą której można sklonować element
  • metoda createTextNode,
    za pomocą której można utworzyć nowy węzeł tekstowy