如何在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); });