如何在jquery中复制Table Row with clone,并为控件创建新的唯一标识.Clone将同时复制数据.i不希望复制数据。
表行包含以下信息:
<tr> <td><input type="text" id="txtTitle" name="txtTitle"></td> <td><input type="text" id="txtLink" name="txtLink"></td> </tr>
我需要为所有新行创建唯一的id,如txtTitle1,link1,Title2,link2等
解决方法
你可以这样做:
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等开头的唯一ID。
You ca give it a try here.如果你需要更改名称,我会传递一个对象到.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++; });