jQuery предоставляет удобные средства для динамического создания и вставки элементов в DOM. Возможность создавать элементы на лету позволяет строить интерактивные интерфейсы, формировать списки, таблицы и другие структуры без необходимости предварительной разметки в HTML.
Создание нового элемента выполняется с помощью функции
$() с передачей HTML-строки.
var div = $('<div></div>');
var span = $('<span>Текст</span>');
Ключевые моменты:
var p = $('<p>Привет, мир!</p>');
Для того чтобы новый элемент стал видимым на странице, его необходимо вставить в существующий узел DOM. jQuery предоставляет несколько методов для вставки элементов:
$('#container').append('<p>Новый параграф</p>');
$('#container').prepend('<p>Первый параграф</p>');
$('#item').before('<li>Новый элемент</li>');
$('#item').after('<li>Следующий элемент</li>');
Особенности:
append() и prepend() позволяют
добавлять сразу несколько элементов.$('<div class="box">Контент</div>').appendTo('#container');
Созданный элемент можно сразу настроить, используя методы jQuery для работы с атрибутами и стилями:
var button = $('<button>Нажми меня</button>')
.attr('id', 'btn1')
.attr('type', 'button')
.css({
backgroundColor: 'blue',
color: 'white',
padding: '10px 20px',
border: 'none',
borderRadius: '5px'
});
$('#container').append(button);
Важно: методы attr(),
css() и addClass() можно вызывать цепочкой,
что делает код компактным и удобочитаемым.
jQuery позволяет сразу привязывать события к создаваемым элементам:
var link = $('<a href="#">Кликни меня</a>').on('click', function(event) {
event.preventDefault();
alert('Событие сработало');
});
$('#container').append(link);
Методы .on() и .click() позволяют задавать
обработчики событий без необходимости отдельного поиска элемента после
вставки в DOM.
Иногда нужно создать новый элемент, похожий на существующий. jQuery поддерживает клонирование с сохранением атрибутов и событий:
var clone = $('#item').clone(true); // true сохраняет события
$('#container').append(clone);
Особенности клонирования:
clone(false) — копирует только структуру и атрибуты,
без событий.Для создания вложенных элементов можно использовать вложенные вызовы
$() и методы вставки:
var card = $('<div class="card"></div>');
var title = $('<h2>Заголовок</h2>');
var content = $('<p>Описание карточки</p>');
card.append(title, content);
$('#container').append(card);
Такой подход позволяет постепенно строить структуру и управлять каждым узлом отдельно.
Часто используется создание элементов из заранее определённых HTML-шаблонов:
var template = `
<div class="item">
<h3></h3>
<p></p>
</div>`;
var newItem = $(template);
newItem.find('h3').text('Новый заголовок');
newItem.find('p').text('Текст элемента');
$('#list').append(newItem);
Это упрощает повторное использование сложных блоков и позволяет динамически наполнять их контентом.
jQuery позволяет создавать несколько элементов за один вызов и добавлять их в DOM:
var items = ['Первый', 'Второй', 'Третий'];
var list = $('<ul></ul>');
$.each(items, function(index, value) {
list.append($('<li></li>').text(value));
});
$('#container').append(list);
Преимущество: все элементы создаются и вставляются динамически без необходимости прописывать каждый вручную в HTML.
$(document.createDocumentFragment()))
для минимизации перерисовок браузера.var fragment = $(document.createDocumentFragment());
for (var i = 0; i < 100; i++) {
fragment.append($('<li></li>').text('Элемент ' + i));
}
$('#list').append(fragment);
Создание элементов в jQuery — гибкий инструмент для динамического
формирования интерфейса. Комбинация методов $(),
append(), prepend(), attr(),
css() и .on() позволяет строить сложные
структуры, управлять их атрибутами, стилями и событиями без сложных
манипуляций с чистым JavaScript. Такой подход делает код компактным,
удобным для сопровождения и расширяемым.