#jquery #clone
#jquery #клонировать
Вопрос:
Я пытаюсь использовать jquery для клонирования строки таблицы каждый раз, когда кто-то нажимает кнопку добавить строку. Кто-нибудь может сказать мне, что не так с моим кодом? На мой взгляд, я использую HTML язык шаблонов smarty. Вот как выглядит мой файл шаблона:
<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, который, как я знаю, запускается, когда я ввожу оператор alert(). Итак, проблема в том, что я не знаю, как работает jquery.
$('#add-row').live('click', function() {$('#entries tr:nth-child(0)').clone().appendTo('#entries');});
Итак, что я делаю не так?
Комментарии:
1. Какую строку вы хотите клонировать?
Ответ №1:
Во-первых, не существует такого понятия, как nth-child(0)
, n-й дочерний элемент начинается с 1
Комментарии:
1. есть ли также способ клонировать строку без клонирования атрибута value каждого входного элемента?
2. попробуйте просто скопировать HTML:
$('#entries').append( $('#entries tr:nth-child(1)').html(); )
Ответ №2:
Попробуйте использовать:
$("tr:nth-child(0)", "#entries")
Посмотрим, поможет ли это….
Ответ №3:
ах, я понял это. n-й дочерний элемент (0) должен быть n-м дочерним элементом (1), если я хочу выбрать первую строку. Подсчет начинается с 1