Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I clone a row in a table without cloning the values of the input elements inside it?

Tags:

jquery

I am trying to add a row to a table. I found that we can use the clone() method to duplicate an existing row. My table has two text inputs in it in two different <tr> elements. Cloning the last row is also duplicating the values in my text inputs, which I don't want? How can I clone the row without duplicating the values?

Here's what I have so far:

$("#table-1 tr:last").clone();
like image 840
user415772 Avatar asked Aug 26 '10 15:08

user415772


2 Answers

Try this:

var clone = $("#table-1 tr:last").clone().find('input').val('').end();
  • .clone() the last <tr>
  • .find() the <input> elements in the clone
  • set the .val() of the <input> elements to '',
  • call .end() so that the cloned <tr> is stored in the variable instead of the <input> elements.

If you intend to append it to the table immediately, add .insertAfter("#table-1 tr:last") to the end.

var clone = $("#table-1 tr:last").clone().find('input').val('').end().insertAfter("#table-1 tr:last");
like image 120
user113716 Avatar answered Sep 30 '22 16:09

user113716


You can add this line after your given line to set the values of the input fields to blank:

$('#table-1 tr:last input').attr('value','');

or just:

$('#table-1 tr:last input').val('');
like image 33
js1568 Avatar answered Sep 30 '22 16:09

js1568