2010-05-02 65 views
5

我想用jQuery来克隆表格行,每次有人按下添加行按钮。任何人都可以告诉我我的代码有什么问题吗?在我看来,我使用HTML + smarty模板语言。这是我的模板文件是什么样子:jquery - 克隆表中的第n行?

<table> 
      <tr> 
        <td>Description</td> 
        <td>Unit</td> 
        <td>Qty</td> 
        <td>Total</td> 
        <td></td> 
      </tr> 
    <tbody id="entries"> 
    {foreach from=$arrItem item=i name=inv} 
      <tr> 
        <td> 
          <input type="hidden" name="invoice_item_id[]" value="{$i.invoice_item_id}"/> 
          <input type="hidden" name="assignment_id[]" value="{$i.assignment_id}" /> 
          <input type="text" name="description[]" value="{$i.description}"/> 
        </td> 
        <td><input type="text" class="unit_cost" name="unit_cost[]" value="{$i.unit_cost}"/></td> 
        <td><input type="text" class="qty" name="qty[]" value="{$i.qty}"/></td> 
        <td><input type="text" class="cost" name="cost[]" value="{$i.cost}"/></td> 
        <td><a href="javascript:void(0);" class="delete-invoice-item">delete</a></td> 
      </tr> 
    {/foreach} 
    </tbody> 
    <tfoot> 
      <tr><td colspan="5"><input type="button" id="add-row" value="add row" /></td></tr> 
    </tfoot> 
    </table> 

这里是我的jQuery的JavaScript调用,我知道后会触发我把警报()语句。所以问题出在我不知道jquery是如何工作的。

$('#add-row').live('click', function() {$('#entries tr:nth-child(0)').clone().appendTo('#entries');}); 

那么我做错了什么?

+0

开始哪你想克隆行吗? – SLaks 2010-05-02 18:13:33

回答

6

首先有没有这样的事情nth-child(0),第n个孩子1

+0

还有克隆行而不克隆每个输入元素的值属性的方法吗? – John 2010-05-02 19:57:30

+0

尝试复制HTML:'$('#entries')。append($('#entries tr:nth-​​child(1)')。html();)' – Mottie 2010-05-02 20:27:51

0

啊我想通了。如果我想选择第一行,则第n个子(0)应该是第n个子(1)。从1

1

计数开始尝试使用:

$("tr:nth-child(0)", "#entries") 

看看是否有帮助....