Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

clone table row

How can i use javascript (i assume) to clone a table row like ive beautifully illustrated in the picture below?

clone row

like image 547
mrpatg Avatar asked Aug 03 '09 17:08

mrpatg


1 Answers

You can hookup a live event to all the buttons. If you give them a class of clone for instance the following will work.

$('input.clone').live('click', function(){
   //put jquery this context into a var
   var $btn = $(this);
   //use .closest() to navigate from the buttno to the closest row and clone it
   var $clonedRow = $btn.closest('tr').clone();
   //append the cloned row to end of the table

   //clean ids if you need to
   $clonedRow.find('*').andSelf().filter('[id]').each( function(){
       //clear id or change to something else
       this.id += '_clone';
   });

   //finally append new row to end of table
   $btn.closest('tbody').append( $clonedRow );
});

Please Note: If you have elements in the table row with id's you will need to do a .each through them and set them to a new value otherwise you will end up with duplicate id's in the dom which is not valid and can play havoc with jQuery selectors

You can do this like so

like image 63
redsquare Avatar answered Oct 31 '22 11:10

redsquare