Я отправил этот же ответ в другом месте , но здесь я думаю, что он относится и к этому вопросу.
Я создал «оригинальный» элемент и спрятал его на странице. Я добавил «---» к значению любого атрибута, который необходимо увеличить в любых дочерних элементах оригинала.
Всякий раз, когда пользователь нажимал кнопку для создания клона оригинала, я создавал клон, а затем глобально заменял «---» на текущий индекс в HTML-коде этого клона. Примерно так:
var $clone = $original.clone();
var cloneHTML = $clone.html().replace(/---/g, incrementedFieldNum);
$clone.html(cloneHTML);
// Insert and show the clone after the original
$original.after($clone);
Я использовал атрибут данных для хранения обновленных значений incrementedFieldNum (не показано в коде выше).
Надеюсь, это поможет. Это намного меньше кода и это более общее решение, я думаю. У меня было много вложенных элементов, которым нужно было увеличивать идентификаторы и имена, поэтому такое решение, как @Fierceblood, было непрактичным.