我对jquery很陌生,而且我很难理解如何使这项工作。Jquery在当前行后删除当前行并删除当前行
$('.addline').click(function() {
var $tr = $(this).closest('tr');
var allTrs = $tr.closest('table').find('tr');
var lastTr = allTrs[allTrs.length-1];
var $clone = $(lastTr).clone();
$clone.find('td').each(function() {
var el = $(this).find(':first-child');
var id = el.attr('id') || null;
if(id) {
var i = id.substr(id.length-1);
var prefix = id.substr(0, (id.length-1));
el.attr('id', prefix+(+i+1));
el.attr('name', prefix+(+i+1));
}
});
$clone.find('input:text').val('');
$tr.closest('table').append($clone);
});
// Remove row from the table
$('.Remline').click(function() {
$(this).closest('tr').remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="fla_inf" width="100%">
<tr>
<th class="tab_header" colspan="6">Flavors and Additives</th>
</tr>
<tr>
<th class="tab_header_nam">Flavor Brand</th>
<th class="tab_header_nam">Flavor Name</th>
<th class="tab_header_nam">Dropper Type</th>
<th class="tab_header_nam">Quantity</th>
<th class="tab_header_nam">Total %</th>
<th class="tab_header_nam">Add/Remove row</th>
</tr>
<tbody>
<tr>
<td><select id="marque.0" name="marque,0"></select></td>
<td><select id="arome.0" name="arome.0"></select></td>
<td><select id="dropper.0" name="dropper.0"></select></td>
<td><input id="quantity.0" name="quantity.0" type="number"/></td>
<td><input id="fla_perc.0" name="fla_perc.0" type="number" min="0" max="100"/></td>
<td><input class="addline" type="button" value="Add row" /><input class="remline" type="button" value="Remove row" /></td>
</tr>
</tbody>
</table>
我有两个问题,我的JS代码:
我只能通过点击最后添加行按钮添加行,我希望能够在我点击“添加行”之后添加一行。
当我点击“删除行”时没有任何反应。
感谢您的帮助
你可以尝试用'var $ tr = $(this).parent('tr');' – zaitsman 2015-01-31 22:35:07
@zaitsman替换'var $ tr = $(this).closest('tr');''' '不会返回任何东西,'父母'不会。 – Barmar 2015-01-31 22:38:26
您的代码在Firefox中不起作用 – 2015-01-31 22:39:10