Хорошо, тебе нужно что-то подобное. Сначала мы клонируем, затем увеличиваем число в имени на единицу, а затем применяем это к каждому входу и затем вставляем их в DOM.
var $cloned = $('#selector').clone();
var oldIndex = $cloned.find('input').attr('name').match(/\d+/);
var newIndex = parseInt(oldIndex,10)+1;
$cloned.find('input').each(function(){
var newName = $(this).attr('name').replace(oldIndex, newIndex);
$(this).attr('name', newName);
});
$cloned.appendTo('#something');
Предполагается, что увеличиваемое число всегда является первым числом в строке имени (однако оно может состоять из нескольких цифр).
Редактировать В ответ на ваш комментарий: Вам необходимо клонировать клонированный объект в остальной части вашего кода. Таким образом, всегда клонируйте последний клон. Вы должны переписать код примерно так:
function clone(){
var $cloned = $('table tr:last').clone();
var oldIndex = $cloned.find('input').attr('name').match(/\d+/);
var newIndex = parseInt(oldIndex,10)+1;
$cloned.find('input').each(function(){
var newName = $(this).attr('name').replace(oldIndex, newIndex);
$(this).attr('name', newName);
});
$cloned.insertAfter('table tr:last');
}
$('p.add-btn').click(clone);