将表行复制到另一个表将删除父表中的行

时间:2016-03-06 18:47:10

标签: javascript html

我将首先解释我想要做的事情:

  1. 将一个表复制到另一个我动态创建的表。
  2. 打印动态创建的表格。
  3. 但是,一旦我将一个表复制到另一个表,它就会删除父表中的行。 请参阅我已完成的以下代码:

     $('#anchorPrint').click(function () 
        {           
            //create a new table dynamically.           
            $("<table>", {id: "tblTransactionHistory_copy",'display':'none'}).appendTo("body");
            $('#tblTransactionHistory_copy').append("<tbody></tbody>");
    
            //copy the main table rows to dynamically created one.
            var rows = $('#tblTransactionHistory > tbody > tr');
            $("#tblTransactionHistory_copy > tbody").append(rows);
    
    
            var divToPrint=document.getElementById("tblTransactionHistory_copy");
            newWin= window.open("");
            newWin.document.write(divToPrint.outerHTML);
            newWin.print();
            newWin.close(); 
            return false;
        });
    

1 个答案:

答案 0 :(得分:1)

不要让任务过于复杂,请改用.clone()

 $('#anchorPrint').click(function(){           
   var tblCopy = $("body").append($('#tblTransactionHistory').clone().attr("id","tblTransactionHistory_copy"));
   var divToPrint = tblCopy.get(0);
   var newWin= window.open("");
   newWin.document.write(divToPrint.outerHTML);
   newWin.print();
   newWin.close(); 
   return false;
 });

您的代码无效的原因是,如果您将document中的任何现有元素作为selectorelement传递,则会将其从原始位置移出并将附加到目标元素。