Как скопировать строку таблицы с клоном в jquery и создать новые уникальные идентификаторы для элементов управления

Как скопировать строку таблицы с клоном в jquery и создать новые уникальные идентификаторы для элементов управления. Clone также будет скопировать данные. я не хочу, чтобы данные копировались.

В строке таблицы содержится следующая информация:

<tr> 
     <td><input type="text" id="txtTitle" name="txtTitle"></td> 
     <td><input type="text" id="txtLink" name="txtLink"></td> 
</tr> 

Мне нужно создать уникальные идентификаторы для всех новых строк, например txtTitle1, link1, Title2, link2 и т.д.

Ответы

Ответ 1

Вы можете сделать что-то вроде этого:

var i = 1;
$("button").click(function() ​​​{
  $("table tr:first").clone().find("input").each(function() {
    $(this).val('').attr('id', function(_, id) { return id + i });
  }).end().appendTo("table");
  i++;
})​;​

Это приведет к очистке значений для новых строк и даст им уникальные идентификаторы, начиная с txtTitle1, txtTile2 и т.д.

Вы можете попробовать здесь. Если вам нужно было изменить name тоже, я бы передал объект .attr(), чтобы он был немного чище, например:

var i = 1;
$("button").click(function() {
  $("table tr:first").clone().find("input").each(function() {
    $(this).attr({
      'id': function(_, id) { return id + i },
      'name': function(_, name) { return name + i },
      'value': ''               
    });
  }).end().appendTo("table");
  i++;
});​

Вы можете попробовать эту версию здесь.