2010-08-26 67 views
5

我想向表中添加一行。我發現我們可以使用克隆()方法來複制現有的行。我的桌子裏有兩個不同的<tr>元素的文字輸入。克隆最後一行也複製了我不想要的文本輸入中的值。如何克隆行而不復制值?如何克隆表中的一行而不克隆其中的輸入元素的值?

這是我到目前爲止有:

$("#table-1 tr:last").clone(); 
+0

重複[複製具有唯一值的行](http://stackoverflow.com/questions/3503279/using-append-to-copy-table-row-would-like-to-create-unique-ids/6455421# 6455421) – 2011-06-23 14:14:13

回答

24

試試這個:

var clone = $("#table-1 tr:last").clone().find('input').val('').end(); 
  • .clone()最後<tr>
  • .find()<input>在克隆
  • 元素設置元素爲'',
  • 請致電.end(),以便克隆的<tr>存儲在變量中而不是<input>元素中。

如果您打算立即將它附加到表中,請將.insertAfter("#table-1 tr:last")添加到最後。

var clone = $("#table-1 tr:last").clone().find('input').val('').end().insertAfter("#table-1 tr:last"); 
+0

:(這正是我在這裏回答的:http://stackoverflow.com/questions/3576948/add-row-to-a-table-with-jquery-but-dont-need-its-value/3577015 #3577015 – 2010-08-28 14:40:44

+0

@Yanick - 這個問題是這個問題的重複。這個問題(和答案)是第一位的,這就是爲什麼另一個關閉了。 – user113716 2010-08-28 14:45:37

1

您可以在給定的行之後添加此行來設置輸入字段爲空值:

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

或者只是:

$('#table-1 tr:last input').val(''); 
1

的上面給出的答案是完美的但有一點是缺少創建的行dint沒有先前創建的行獲得的事件。所以爲了克隆具有事件的相同行,我們必須設置屬性true。

看這裏......

var newRow = $("#table-of-items  tr:last").clone(true).find(':input').val('').end(); 

    $("#table-of-items").append(newRow); 

注表的項是表的名稱。