Один из способов сделать это:
$(document).ready(function() {
$('body').on('click', '.AddEl', function() {
$('.actions:first')
.parent()
.clone()
.attr('id', 'element_' + $('.actions').length)
.insertAfter($('.actions:last').parent());
});
$('body').on('click', '.RemoveEl', function() {
$(this).closest('.actions').parent().remove();
});
});
JS Fiddle demo .
Обратите внимание, что я изменил ваш html так, чтобы первый элемент, который должен быть клонирован, теперь был id="element_0"
, и нацелен на него и все последующие созданные элементы с помощью селектора CSS:
div[id^=element] {
/* css */
}
Это может быть упрощено, но это просто мои первые мысли.
<ч />
Отредактировано , чтобы предложить немного улучшенную версию, в которой первоначальное добавление немного, или кажется немного, более кратким, а также содержит средства для предотвращения создания дубликатов id
, если элементы добавлено / удалено:
$(document).ready(function() {
$('body').on('click', '.AddEl', function() {
var $elems = $('.actions').parent();
$elems
.first()
.clone()
.insertAfter($elems.last());
$('div[id^="element_"]').each(
function(i){
$(this).attr('id','element_' + i);
});
});
$('body').on('click', '.RemoveEl', function() {
$(this).closest('.actions').parent().remove();
});
});
JS Fiddle demo .