Я создал form, где вы можете добавить человека, нажав кнопку. Теперь я хочу добавить новую кнопку, чтобы удалить последнего добавленного человека. Мой текущий код удаляет только одного человека, и после этого я не могу снова добавить другого человека. Кто-нибудь знает, что случилось?
$(document).ready(function(){
$("#button1").click(function(){
$(".flex-container-name-adult").append($(".test1").html());
});
});
$(document).ready(function(){
$("#button3").click(function(){
$(".test1").remove();
});
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "flex-container-name-adult">
<button id = "button1">Add person</button>
<button id = "button3">Delete person</button>
<div class = "test1">
<div class = "flex-wrapper-name-adult">
<span class = "adult">Person</span><br>
<input type = "text" class = "input" placeholder = "Name" name = "name" required>
<input type = "text" class = "input" placeholder = "Nachname" name = "nachname" required>
<input type = "date" class = "input" placeholder = "Geburtsdatum" name = "geburtstag" required onfocus = "(this.type='date')" onblur = "(this.type='Geburtsdatum')">
</div>
</div>
</div>


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


Когда вы нажимаете кнопку add person, вы добавляете HTML из test1 к элементу с классом flex-container-name-adult. Этот HTML не включает сам класс div with test1. Теперь, когда вы нажимаете кнопку delete person, вы удаляете все элементы с классом test1. Таким образом, после этого действия в документе больше не будет элементов с классом test1, которые впоследствии можно будет использовать на кнопке add person.
Я предлагаю использовать .клон() для того, что вы хотите сделать, и всегда удалять последнего добавленного человека. Что-то вроде этого:
$(document).ready(function()
{
$("#button1").click(function()
{
// Clone the first ".test1" element and append it to the wrapper.
$(".flex-container-name-adult").append($(".test1").first().clone());
});
$("#button3").click(function()
{
// Delete last ".test1" element, if exists more than one.
let tests = $(".test1");
if (tests.length > 1)
tests.last().remove();
});
});<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "flex-container-name-adult">
<button id = "button1">Add person</button>
<button id = "button3">Delete person</button>
<div class = "test1">
<div class = "flex-wrapper-name-adult">
<span class = "adult">Person</span><br>
<input type = "text" class = "input" placeholder = "Name" name = "name" required>
<input type = "text" class = "input" placeholder = "Nachname" name = "nachname" required>
<input type = "date" class = "input" placeholder = "Geburtsdatum" name = "geburtstag" required onfocus = "(this.type='date')" onblur = "(this.type='Geburtsdatum')">
</div>
</div>
</div>