Javascript 克隆表行后编辑输入名称和id

Javascript 克隆表行后编辑输入名称和id,javascript,jquery,html,Javascript,Jquery,Html,单击按钮后,将克隆表的最后一行。每一行都有不同的输入标签,名称和ID以“u”+所在行数结尾 添加到表中的新行包含相同的字段,但每行中的名称和ID没有增加 在检查了类似的问题之后,我考虑在jquery函数中添加以下代码(代码段中对代码进行了注释) 但它不会更改属性,我在浏览器控制台中得到以下错误:“未捕获引用错误:未定义输入” 这个函数有什么问题? 谢谢你的帮助 $(“#cargarFamilias”)。单击(函数(){ var currentCount=$(“tablaFamilias tr”

单击按钮后,将克隆表的最后一行。每一行都有不同的输入标签,名称和ID以“u”+所在行数结尾

添加到表中的新行包含相同的字段,但每行中的名称和ID没有增加

在检查了类似的问题之后,我考虑在jquery函数中添加以下代码(代码段中对代码进行了注释)

但它不会更改属性,我在浏览器控制台中得到以下错误:“未捕获引用错误:未定义输入”

这个函数有什么问题? 谢谢你的帮助

$(“#cargarFamilias”)。单击(函数(){
var currentCount=$(“tablaFamilias tr”).长度;
var newCount=currentCount+1;
$('tablaFamilias tbody>tr:last').clone(true).insertAfter('tablaFamilias tbody>tr:last');
/*
$('tablaFamilias tbody>tr:last')。查找(“输入”)。每个(函数(索引、标签){
input.id=input.id.replace(““+currentCount,”“+newCount);
input.name=input.name.replace(““+currentCount,”“+newCount);
});
*/
});

卡加家庭概念酒店
帕蒂达
科迪戈
描述
恩特雷加广场
康蒂达
嗯
恩特雷加卢加酒店
德恩特雷加省

1。利用

您正在使用
each()
遍历行中的输入,这意味着您可以使用
this
引用当前输入(而不是
input
,后者将不起作用)


2。您的
currentCount
包含标题…

对于1个数据行,
currentCount
实际上是2。由于
2
不在
id
名称中,因此不进行替换

您可以减去一以补偿标题:

var currentCount = $("#tablaFamilias tr").length-1;
…或通过更具体一点,在选择中不包含标题:

var currentCount = $("tableFamilias tbody tr").length;

3。您没有增加您的
select
元素…

您只增加了
输入
元素,但我必须假设您还希望增加
选择
元素:

$('#tablaFamilias tbody>tr:last').find("input, select").each( ... );

把它们放在一起……

$(“#cargarFamilias”)。单击(函数(){
var currentCount=$(“tablaFamilias tr”)。长度为1;
var newCount=currentCount+1;
$('tablaFamilias tbody>tr:last').clone(true).insertAfter('tablaFamilias tbody>tr:last');
$('tablaFamilias tbody>tr:last')。查找(“输入,选择”)。每个(函数(){
var newid=$(this.attr(“id”).replace(“\u”+currentCount,“\u”+newCount”);
var newname=$(this.attr(“name”).replace(“\u”+currentCount,“\u”+newCount”);
$(this.attr(“id”,newid).attr(“name”,newname);
});
});

卡加家庭概念酒店
帕蒂达
科迪戈
描述
恩特雷加广场
康蒂达
嗯
恩特雷加卢加酒店
德恩特雷加省

1。利用

您正在使用
each()
遍历行中的输入,这意味着您可以使用
this
引用当前输入(而不是
input
,后者将不起作用)


2。您的
currentCount
包含标题…

对于1个数据行,
currentCount
实际上是2。由于
2
不在
id
名称中,因此不进行替换

您可以减去一以补偿标题:

var currentCount = $("#tablaFamilias tr").length-1;
…或通过更具体一点,在选择中不包含标题:

var currentCount = $("tableFamilias tbody tr").length;

3。您没有增加您的
select
元素…

您只增加了
输入
元素,但我必须假设您还希望增加
选择
元素:

$('#tablaFamilias tbody>tr:last').find("input, select").each( ... );

把它们放在一起……

$(“#cargarFamilias”)。单击(函数(){
var currentCount=$(“tablaFamilias tr”)。长度为1;
var newCount=currentCount+1;
$('tablaFamilias tbody>tr:last').clone(true).insertAfter('tablaFamilias tbody>tr:last');
$('tablaFamilias tbody>tr:last')。查找(“输入,选择”)。每个(函数(){
var newid=$(this.attr(“id”).replace(“\u”+currentCount,“\u”+newCount”);
var newname=$(this.attr(“name”).replace(“\u”+currentCount,“\u”+newCount”);
$(this.attr(“id”,newid).attr(“name”,newname);
});
});

卡加家庭概念酒店
帕蒂达
科迪戈
描述
恩特雷加广场
康蒂达
嗯
恩特雷加卢加酒店
德恩特雷加省

您的单击事件应该如下所示。两件事

  • 您需要通过
    #tablaFamilias tbody tr
    选择器而不是
    #tablaFamilias tr
    来计算
    当前计数
    
  • 使用
    attr()
    方法设置
    id
    name
  • $(“#cargarFamilias”)。单击(函数(){
    var currentCount=$(“#tablaFamilias tbody tr”).长度,
    newCount=currentCount+1;
    $('tablaFamilias tbody>tr:last').clone(true).insertAfter('tablaFamilias tbody>tr:last');
    $('tablaFamilias tbody>tr:last')。查找(“inp