2016-03-06 2 views
-1

Я сначала объяснить, что я пытаюсь сделать:Копирование строк таблицы в другую таблицу удаляет строки из родительской таблицы

  1. Скопируйте один стол на другой, что я создаю динамически.
  2. Распечатайте динамически создаваемую таблицу.

Но, как только я копирую одну таблицу в другую, она удаляет строки из родительской таблицы. Пожалуйста, смотрите следующий код, который я сделал:

$('#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

Не делает задачу слишком сложной, используйте .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 либо selector или как element, который будет перемещен из своего первоначального положения и получит добавленный к целевому элементу ,

+0

Здравствуйте, Sir, Выше кода не задана новая таблица 'tblTransactionHistory_copy'. Потому что после выше кода 'document.getElementById (' tblTransactionHistory_copy ')' возвращает значение null. Я хочу, чтобы новый стол существовал, потому что я хочу внести некоторые изменения в это, прежде чем я его распечатаю. Короче говоря, я хочу сделать копию основного стола, чтобы я мог манипулировать вещами в нем перед его печатью. У вас есть решение? Спасибо заранее! – user2746466

+0

@ user2746466 Просто забыл добавить клонированный элемент в тело. Вы можете проверить код сейчас? –

+0

Я сделал это сейчас, я могу получить объект моей недавно созданной таблицы. Но теперь новая проблема возникает каждый раз при выполнении этого кода. Я получаю новую таблицу, созданную с тем же идентификатором. Я написал этот код нажатием кнопки, и каждый щелчок кнопки создает таблицу. Поэтому у меня есть несколько таблиц в теле с таким же идентификатором. Как это остановить? – user2746466

Смежные вопросы