2012-11-07 40 views
1

我需要動態添加行到表中。我知道我想要的模型行如下所示:何時使用克隆()

<tr id="row"> 
    <td><input type="text" name="name"/></td> 
    <td><span>TEXT HERE</span></td> 
    <td><input type="checkbox" name="asdf"/></td> 
</tr> 

我想知道如果我應該只寫代碼,從頭開始重現此行或者我是否應該使用jQuery的clone()方法,像這樣:

//Would document this better in production 
$('#row').clone().attr('id', 'row2').insertAfter('#row'); 

然後確保原始#row元素被隱藏在CSS中。

推廣這個問題,將有一個隱藏的DOM元素,然後克隆該元素時,需要一個良好的做法的jQuery?或者是否有這種類型的問題更清潔的解決方案?

謝謝!

+1

是的,使用backbone.js,定義一個模板並以這種方式寫入dom。很乾淨。 –

+1

如果你想修改ID,你應該使用'attr'方法,jQuery中沒有'id'方法。 – undefined

+1

@undefined是的,對不起,我只是寫了一個快速的一行,我經常忘記我不能直接訪問id。現在修好! – KLee1

回答

1

將格式硬編碼爲JavaScript,這實際上是實現它的最佳方式。

可能的另一種方式是通過複製現有的(數據)行並從元素中刪除所有文本。然後你得到一個沒有隱形行的克隆。

也有插件來處理這個問題,如dynoTableothers