.append () будет вставлять ваш контент в конце, но внутри целевого элемента. В вашем примере это приведет к неправильному вложению <li>
элементов.
В вашем примере, я думаю, вы ищете .after () функциональность. Каждый новый элемент будет вставлен вверху списка, что может быть нежелательно.
Вы можете добавить условные элементы для проверки размещения с помощью last () или настроить HTML-код и использовать добавление.
Возможно, что-то вроде этого:
var count = 0;
$(document).ready(function(){
$('li#add_field').click(function(){
count += 1;
if(count == 1) {
$('#container').after('<li><input id="field_' + count + '" name="fields[]" type="text" /></li>');
}
else {
$('input[id^=field_]').last().parent('li').after('<li><input id="field_' + count + '" name="fields[]" type="text" /></li>');
}
});
});
И, как уже упоминалось, у вас есть два идентификатора на <li id="container" id="add_field">
. Вы должны попытаться исправить это, создав класс или изменив структуру HTML.