如何在jquery中增加.clone()的值

我正在尝试克隆一个表单并从(例如)#form更改表单名称,当克隆到#form1并在输入上执行相同操作时,我真的不知道如何执行此操作! 任何帮助都会非常感激,因为我花了一整天试图找出它。 这是我的代码:

HTML:

JQUERY(用于克隆div和表单):

 $("#copy").click(function(e) { $(".avail").clone().removeAttr('id').insertBefore(this); e.preventDefault(); }); 

如果有人知道如何做到这一点,我会非常感激!

您可以只计算有多少可用对象,并将其用作新表单ID的运行计数。

 $("#copy").click(function(e) { var avails = $(".avail"); var cnt = avails.length + 1; avails.eq(0).clone().insertBefore(this).find("form").attr("id", "form" + cnt); e.preventDefault(); }); 

你可以在这里看到它的工作: http : //jsfiddle.net/jfriend00/9CU85/

如果您还需要更新input元素的name属性上的数字,那么您也可以使用此代码执行此操作:

 $("#copy").click(function(e) { var avails = $(".avail"); var cnt = avails.length + 1; avails.eq(0).clone().insertBefore(this) .find("form").attr("id", "form" + cnt) .find("input").each(function() { this.name = this.name.replace(/\d+/, cnt); }); e.preventDefault(); });​ 

你可以在这看到这个工作: http : //jsfiddle.net/jfriend00/SKjMN/

 $('#copy').click(function(e){ var formNode = $('.avail form')[0]; var idAttibute = $(formNode).attr('id'); var id = id.charAt(idAttibute.length-1); var copy = $(".avail").clone().removeAttr('id'); $(copy).find('form').attr('id', 'form' + id); $(copy).insertBefore(this); });