Как скопировать строку таблицы с клоном в jquery и создать новые уникальные идентификаторы для элементов управления - PullRequest
34 голосов
/ 17 августа 2010

Как скопировать строку таблицы с помощью clone в 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 Ответ

80 голосов
/ 17 августа 2010

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

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++;
});​

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...