Метод createElement
Методът createElement позволява да се създаде
нов елемент, като се подаде името на тага като параметър.
След създаването с елемента може да се работи
като с обикновен елемент, а също така може да бъде
добавен в страницата с методите prepend,
append,
appendChild,
insertBefore
или insertAdjacentElement.
Ако резултатът от работата на createElement
се запише в променлива, то в тази променлива ще има
такъв елемент, все едно сме го получили
чрез querySelector
или getElementById.
Единствената разлика - нашият елемент няма да бъде
разположен в страницата. А иначе можем да променяме
неговия innerHTML, атрибути, да закачаме манипулатори
на събития и в крайна сметка да го поставим
в страницата.
Синтаксис
document.createElement('име на таг');
Пример
Нека създадем параграф, зададем му текст
и го поставим в страницата в края на блока #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);
Резултат от изпълнението на кода:
<div id="parent">
<p>1</p>
<p>2</p>
<p>3</p>
<p>!</p>
</div>
Пример
Даден е ul.
Нека поставим в него 9 тага li,
като техен текст направим поредните номера:
<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);
}
Резултат от изпълнението на кода:
<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>
Пример
Нека при вмъкване на елементи да закачаме към тях манипулатори на събития:
<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);
};
:
Вижте също
-
метод
cloneNode,
с помощта на който може да се клонира елемент -
метод
createTextNode,
с помощта на който може да се създаде нов текстов възел