В этом руководстве вы узнаете, как использовать JavaScript document.createElement()
для создания нового элемента HTML и добавления его к дереву DOM.
Чтобы создать элемент HTML, используйте метод document.createElement()
:
let element = document.createElement(htmlTag);
document.createElement()
принимает имя тега HTML и возвращает новый Node
с Element
.
1) Пример создания нового div
Предположим, у вас есть следующий HTML-документ:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JS CreateElement Demo</title> </head> <body> </body> </html>
В следующем примере document.createElement()
используется для создания нового элемента <div>
:
let div = document.createElement('div');
И добавьте фрагмент HTML в div
:
div.innerHTML = '<p>CreateElement example</p>';
Чтобы прикрепить div
к документу, вы используете метод appendChild()
:
document.body.appendChild(div);
Соединим все это вместе:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JS CreateElement Demo</title> </head> <body> <script> let div = document.createElement('div'); div.id = 'content'; div.innerHTML = '<p>CreateElement example</p>'; document.body.appendChild(div); </script> </body> </html>
Добавление идентификатора
Если вы хотите добавить идентификатор к div
, вы устанавливаете id
элемента в значение, например:
let div = document.createElement('div'); div.id = 'content'; div.innerHTML = '<p>CreateElement example</p>'; document.body.appendChild(div);
Добавление класса
В следующем примере задается класс CSS для нового div note
:
let div = document.createElement('div'); div.id = 'content'; div.className = 'note'; div.innerHTML = '<p>CreateElement example</p>'; document.body.appendChild(div);
Новый текст в div
Чтобы добавить фрагмент текста в <div>
, вы можете использовать свойство innerHTML
, как в приведенном выше примере, или создать новый узел Text
и добавить его к div
:
// create a new div and set its attributes let div = document.createElement('div'); div.id = 'content'; div.className = 'note'; // create a new text node and add it to the div let text = document.createTextNode('CreateElement example'); div.appendChild(text); // add div to the document document.body.appendChild(div);
Добавление элемента
Чтобы добавить элемент в div
, вы создаете элемент и добавляете его в div
используя метод appendChild()
:
let div = document.createElement('div'); div.id = 'content'; div.className = 'note'; // create a new heading and add it to the div let h2 = document.createElement('h2'); h2.textContent = 'Add h2 element to the div'; div.appendChild(h2); // add div to the document document.body.appendChild(div);
2) Пример создания новых элементов списка( li
)
Допустим, у вас есть список элементов:
<ul id="menu"> <li>Home</li> </ul>
Следующий код добавляет два элемента li
к ul
:
let li = document.createElement('li'); li.textContent = 'Products'; menu.appendChild(li); li = document.createElement('li'); li.textContent = 'About Us'; // select the ul menu element const menu = document.querySelector('#menu'); menu.appendChild(li);
Выход:
<ul id="menu"> <li>Home</li> <li>Products</li> <li>About Us</li> </ul>
3) Создание элемента script
Иногда может потребоваться динамическая загрузка файла JavaScript. Для этого вы можете использовать document.createElement()
, чтобы создать элемент script
и добавить его в документ.
В следующем примере показано, как создать новый элемент script
и загрузить в документ файл /lib.js
:
let script = document.createElement('script'); script.src = '/lib.js'; document.body.appendChild(script);
Сначала вы можете создать новую вспомогательную функцию, которая загружает файл JavaScript из URL-адреса:
function loadJS(url) { let script = document.createElement('script'); script.src = url; document.body.appendChild(script); }
Затем используйте вспомогательную функцию для загрузки файла /lib.js
:
loadJS('/lib.js');
Чтобы загрузить файл JavaScript асинхронно, установите для атрибута script
async
элемента c2NyaXB0 значение true
:
function loadJSAsync(url) { let script = document.createElement('script'); script.src = url; script.async = true; document.body.appendChild(script); }
Заключение
document.createElement()
создает новый элемент HTML.element.appendChild()
добавляет элемент HTML к существующему элементу.