#jquery #filter #clone #parent-child #show-hide
#jquery #Фильтр #клонировать #родитель-потомок #показать-скрыть
Вопрос:
Задача клонировать элемент div (.cloneable) и его дочерние элементы формы, показать скрытую привязку, которая позволяет пользователю удалять экземпляры div.cloneable.
Проблема Я хочу скрыть привязку (идентификатор dltBtn), как только останется только один экземпляр .cloneable.
Попытки решения Я пытался изменить фильтры и селекторы в .cloneable или сделать так, чтобы он скрывался только после того, как остался один экземпляр, но безрезультатно.
Наконец, я хочу иметь возможность перебирать входные элементы, сбрасывать их и изменять их идентификаторы.
Код приведен ниже:
$(document).ready(function() {
$('#dltBtn').hide();
$('#addBtn').click(function() {
$('#dltBtn').show();
var c = $('.nestedDiv').find('.cloneable:first').clone(true);
// Loop through inputs under cloneable
// resetId, reset value will go here stubbed out for now
$('.cloneable:last').after(c);
});
$('#dltBtn').click(function() {
if (confirm('continue delete?')) {
$(this).closest('.cloneable').remove();
$('#dltBtn:last').hide($('.cloneable:child').length == 0 );
} else {
$('#dltBtn:parent').hide($('.cloneable').length == 1);
}
});
});
Комментарии:
1. в ` $(‘.cloneable:last’).after(c); })` отсутствует точка с запятой
2. Спасибо, ianace. Исправлено. Я на самом деле опустил, когда исключал посторонний контент.
Ответ №1:
Наконец, я хочу иметь возможность перебирать входные элементы, сбрасывать их и изменять их идентификаторы.
clone.find(':input').val('').attr('id', function(index, oldId) {
return oldId index;
})