克隆在jQuery中,并为每个添加唯一的ID

问题描述:

我正在创建一个简单的Web应用程序,用户进来;从下拉框中选择并输入一些文本。完成此操作后,用户按下“生成”按钮,将显示生成的连接字符串(显示在<span>中),然后用户可以复制并粘贴该字符串。我已经有一行工作没有问题。克隆在jQuery中,并为每个添加唯一的ID

但我现在试图实现的是有一个“添加行”按钮,用户可以点击它,将复制上面的行。我遇到的问题是确保一旦复制行并单击生成按钮,复制的<span>将只填充与前面的<span>相同的值。

更新:所以我设法使用JQuery的clone()函数来复制该行并将其放在底下。是否可以更改每个被复制的元素的ID,包括表单的ID。即,使得当它被复制的形式,它的复制到将被称为说,“Form1的”

的我有什么JS小提琴是在这里:

http://jsfiddle.net/XJEAn/

更新2:基本上我需要的东西类似于this,但对于我试过的代码!

我已经更新了你的小提琴给新形式的唯一ID的

http://jsfiddle.net/zq3AN/

它可能不完全完美,但应该让你在正确的方向前进。

var uniqueId = 1; 
$(function() { 
    $('.addRow').click(function() { 
     var copy = $("#original").clone(true); 
     var formId = 'NewForm' + uniqueId; 
     copy.attr('id', formId); 


     $('#campaign').append(copy); 
     $('#' + formId).find('input,select').each(function(){ 
      $(this).attr('id', $(this).attr('id') + uniqueId); 

     }); 
     uniqueId++; 
    }); 
}); 

基本上你复制表格,改变它的id,并将它附加到div。然后你看看所有的输入,并选择并追加相同的uniqueId参数到他们的ID。

+0

非常感谢你!我现在要看看... – zik 2012-01-03 16:15:56

+0

只是采取了适当的审视。所以感谢@Patricia,这个工作和功能在那里。解决了我一直试图纠正的一个问题 - 谢谢! :) – zik 2012-01-03 16:23:24

+0

很高兴我可以帮助:) – Patricia 2012-01-03 16:25:17

我认为你可以使用jQuery clone() function来实现你的“添加行”功能。

检查出每个新行的唯一标识的最后一个示例。