Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript/jquery克隆/复制html表_Javascript_Jquery - Fatal编程技术网

如何使用javascript/jquery克隆/复制html表

如何使用javascript/jquery克隆/复制html表,javascript,jquery,Javascript,Jquery,我这里有一个问题,当我在最近复制的行上单击“复制”按钮时。它不起作用。你们知道怎么解决这个问题吗 这是我的密码 var controller = function(num1) { $('#copy-' + num1).click(function() { var $tableBody = $('#table_name').find("tbody"), $trLast = $tableBody.find("#tr-" + num1), $trN

我这里有一个问题,当我在最近复制的行上单击“复制”按钮时。它不起作用。你们知道怎么解决这个问题吗

这是我的密码

var controller = function(num1) {
    $('#copy-' + num1).click(function() {

      var $tableBody = $('#table_name').find("tbody"),
        $trLast = $tableBody.find("#tr-" + num1),
        $trNew = $trLast.clone();
      // $trNew.find('input').val('');
      $trLast.after($trNew);
      console.clear()
      // refresh_index();

    });
  }

  function refresh_index() {
    $('#table_name > tbody > tr').each(function(i) {

      i++;
      var select = $(this).find('select');
      var text = $(this).find('input');
      var button = $(this).find('button');

      controller(i);

    });
  }
  refresh_index();

这是我在

中的代码,使用委派方法在动态创建的元素上附加单击事件。这将允许事件处理稍后添加到主体中的元素

改变

$('#copy-' + num1).click(function() {

$(函数(){
var控制器=功能(num1){
$('body')。在('click','复制-'+num1,函数()上{
var$tableBody=$('#table_name')。查找(“tbody”),
$trLast=$tableBody.find(#tr-“+num1),
$trNew=$trLast.clone();
//$trNew.find('input').val('');
$trLast.after($trNew);
控制台清除()
//刷新索引();
});
}
函数刷新_索引(){
$('#表名称>tbody>tr')。每个(函数(i){
i++;
var select=$(this.find('select');
var text=$(this.find('input');
var button=$(this.find('button');
控制员(i);
});
}
刷新索引();
});

不
项目
行动
1.
老鼠
复制
2.
键盘
复制
3.
班长
复制

要在动态创建的元素上附加单击事件,请使用委派方法。这将允许事件处理稍后添加到主体中的元素

改变

$('#copy-' + num1).click(function() {

$(函数(){
var控制器=功能(num1){
$('body')。在('click','复制-'+num1,函数()上{
var$tableBody=$('#table_name')。查找(“tbody”),
$trLast=$tableBody.find(#tr-“+num1),
$trNew=$trLast.clone();
//$trNew.find('input').val('');
$trLast.after($trNew);
控制台清除()
//刷新索引();
});
}
函数刷新_索引(){
$('#表名称>tbody>tr')。每个(函数(i){
i++;
var select=$(this.find('select');
var text=$(this.find('input');
var button=$(this.find('button');
控制员(i);
});
}
刷新索引();
});

不
项目
行动
1.
老鼠
复制
2.
键盘
复制
3.
班长
复制

您在加载dom后添加它,因此它将找不到它。如果使用on函数以动态添加之前dom中的某个对象为目标,然后在“click”之后的第二个变量中添加该目标,那么它应该可以工作

$(函数(){
var控制器=功能(num1){
var newThingy='#copy-'+num1;
$(“#table_name”)。在(“click”,newThingy,function()上{
var$tableBody=$('#table_name')。查找(“tbody”),
$trLast=$tableBody.find(#tr-“+num1),
$trNew=$trLast.clone();
//$trNew.find('input').val('');
$trLast.after($trNew);
控制台清除()
//刷新索引();
});
}
函数刷新_索引(){
$('#表名称>tbody>tr')。每个(函数(i){
i++;
var select=$(this.find('select');
var text=$(this.find('input');
var button=$(this.find('button');
控制员(i);
});
}
刷新索引();
});

不
项目
行动
1.
老鼠
复制
2.
键盘
复制
3.
班长
复制

您在加载dom后添加它,因此它将找不到它。如果使用on函数以动态添加之前dom中的某个对象为目标,然后在“click”之后的第二个变量中添加该目标,那么它应该可以工作

$(函数(){
var控制器=功能(num1){
var newThingy='#copy-'+num1;
$(“#table_name”)。在(“click”,newThingy,function()上{
var$tableBody=$('#table_name')。查找(“tbody”),
$trLast=$tableBody.find(#tr-“+num1),
$trNew=$trLast.clone();
//$trNew.find('input').val('');
$trLast.after($trNew);
控制台清除()
//刷新索引();
});
}
函数刷新_索引(){
$('#表名称>tbody>tr')。每个(函数(i){
i++;
var select=$(this.find('select');
var text=$(this.find('input');
var button=$(this.find('button');
控制员(i);
});
}
刷新索引();
});

不
项目
行动
1.
老鼠
复制
2.
键盘
复制
3.
班长
复制

使用委托事件,如
$tableBody.find('.copy').off('click').on('click',function(){})tr
后的code>和bind click事件最好使用
class
而不是
ids
。以下是基于JSFIDLE的更新代码

var$tableBody=$('#table_name')。查找(“tbody”);
clickEvent();
函数clickEvent(){
$tableBody.find('.copy').off('click').on('click',function()){
$trLast=$(this).closest('tr'),
$trNew=$trLast.clone();
$trLast.after($trNew);
clickEvent();
});
函数刷新_索引(){
$('#表名称>tbody>tr')。每个(函数(i){
i++;
var select=$(this.find('td').eq(0).text(i);
});
}
刷新索引();
}

不
项目
行动
1.
老鼠
复制
2.
键盘
复制
3.
班长
复制

使用委托事件,如
$tableBody.find('.copy').off('click').on('click',function(){})tr
后的code>和bind click事件最好使用
class
而不是
ids
。下面是基于o的更新代码