Я написал функцию добавления списка с текстовым полем и кнопкой удаления, каждый раз, когда нажимали кнопку добавления. Я также добавляю уникальный идентификатор к каждому новому элементу, добавляя номер. проблема возникает, когда я пытаюсь удалить элемент, а затем добавить еще один, иногда этот номер дублируется. пример: я добавляю 4 li и решаю удалить # 3. Затем нажмите «Добавить новую» снова, новая последовательность - 1,2,4,3,4 вместо 1,2,4,5,6. Я надеюсь, что это имело смысл.
вот мой javascript
var count = 2;
$('#add').click(function() {
var newTxtBxLi = $('<li></li>').attr('id', 'newli' + count).appendTo('ul');
var input = $('<input type="text" id="newinput' + count + '" name="newinput' + count + '" /><input type="button" id="remove' + count + '" class="remove" value="">');
$(input).appendTo(newTxtBxLi);
count++;
$('.remove').each(function() {
$(this).click(function() {
//count--;
$(this).parent('li').remove();
});
});
});
Спасибо, заранее
// обновление
поэтому я провел некоторое исследование на stackoverflow и нашел сообщение о выполнении проверки на наличие дублированных идентификаторов. новый код работает, но теперь я должен выяснить, как написать «найти последний идентификатор и + 1, а затем создать новый li с этим новым идентификатором.
вот мой обновленный код:
$('#add').click(function() {
var count = $('ul > li').length + 1;
var newTxtBxLi = $('<li></li>').attr('id', 'newli' + count).appendTo('ul');
var input = $('<input type="text" id="newinput' + count + '" name="newinput' + count + '" /><input type="button" id="remove' + count + '" class="remove" value="">');
$('ul > li[id]').each(function(){
var ids = $('[id='+this.id+']');
if(ids.length>1 && ids[0]==this){
//console.warn('Multiple IDs #'+this.id);
//find the last id and + 1, then add new listitem
}else{
$(inputAcc).appendTo(newTxtBxLi);
accomplishCount++;
}
});
$('.remove').each(function() {
$(this).click(function() {
count--;
$(this).parent('li').remove();
});
});
});