2010-05-02 4 views
5

Tôi đang cố gắng sử dụng jquery để sao chép một hàng của bảng mỗi khi ai đó nhấn nút thêm hàng. Bất cứ ai có thể cho tôi biết những gì sai với mã của tôi? Tôi đang sử dụng HTML + ngôn ngữ lập trình thông minh theo quan điểm của tôi. Dưới đây là những gì mẫu tệp của tôi trông giống như:jquery - sao chép hàng thứ n của bảng?

<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> 

Đây là cuộc gọi Javascript Jquery của tôi, mà tôi biết được kích hoạt khi tôi đưa vào một cảnh báo(). Vì vậy, vấn đề là với tôi không biết làm thế nào jquery hoạt động.

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

Vì vậy, tôi đang làm gì sai?

+0

nào hàng nào bạn muốn sao chép? – SLaks

Trả lời

6

Trước hết không có những điều như nth-child(0), thứ n-đứa trẻ bắt đầu với 1

+0

là cũng có một cách để sao chép hàng mà không nhân bản thuộc tính giá trị của mỗi phần tử đầu vào? – John

+0

thử chỉ sao chép HTML: '$ ('# mục'). Chắp thêm ($ ('# mục tr: nth-child (1)'). Html();)' – Mottie

0

ah tôi đã tìm ra. nth-child (0) phải là n-child (1) nếu tôi muốn chọn hàng đầu tiên. Đếm bắt đầu từ 1

1

Thử sử dụng:

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

Xem nếu điều đó giúp ....