Метод createElement

Методът createElement позволява да се създаде нов елемент, като се подаде името на тага като параметър. След създаването с елемента може да се работи като с обикновен елемент, а също така може да бъде добавен в страницата с методите prepend, append, appendChild, insertBefore или insertAdjacentElement.

Ако резултатът от работата на createElement се запише в променлива, то в тази променлива ще има такъв елемент, все едно сме го получили чрез querySelector или getElementById. Единствената разлика - нашият елемент няма да бъде разположен в страницата. А иначе можем да променяме неговия innerHTML, атрибути, да закачаме манипулатори на събития и в крайна сметка да го поставим в страницата.

Синтаксис

javascriptdocument.createElement('име на таг');

Пример

Нека създадем параграф, зададем му текст и го поставим в страницата в края на блока #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);

Резултат от изпълнението на кода:

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

Пример

Даден е ul. Нека поставим в него 9 тага li, като техен текст направим поредните номера:

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

Резултат от изпълнението на кода:

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>

Пример

Нека при вмъкване на елементи да закачаме към тях манипулатори на събития:

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

Результат:

Вижте също

  • метод cloneNode,
    с помощта на който може да се клонира елемент
  • метод createTextNode,
    с помощта на който може да се създаде нов текстов възел