Итак, у меня есть это:
<script>
{% block js %}
$('#add_file').on('click', function(){
html = '<div class = "row">';
html += '<div class = "col s6 input-field">';
html += '<input placeholder = "Komentaras" name = "file_description" type = "text" />';
html += '</div>';
html += '<div class = "col s2 top_20">';
html += '<a class = "btn-floating red tooltipped delete" data-position = "top" data-delay = "20" data-tooltip = "Trinti"><i class = "material-icons" id = "delete_files">delete</i></a>';
html += '</div>';
html += '</div>';
$('#files').append(html);
});
{% endblock %}
</script>
Этот блок кода генерирует и добавляет дополнительные div в зависимости от щелчка. Вопрос в том, как удалить каждый сгенерированный html один за другим, нажимая этот сгенерированный красный btn?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


$('a.delete').click(function() {
$(this).closest('.row').remove();
})
Примечание: не используйте тот же идентификатор id = "delete_files" на значке.
Поскольку он динамически добавляется, вы не можете просто использовать обычный jQuery для его таргетинга. jQuery работает с загруженной DOM - ни с чем после.
Итак, вы должны написать функцию, которая:
$('#files').on('click', '.delete', function()
{
$(this).parents().eq(1).remove()
})
ссылки:
Добавьте событие щелчка для удаления кнопки после добавления в #files, затем в функции обратного вызова найдите родительский родительский div с class = row и удалите его