gpt4 book ai didi

jquery - 克隆表行并将 ID 递增 1

转载 作者:可可西里 更新时间:2023-11-01 13:07:20 25 4
gpt4 key购买 nike

在我下面的 js 代码中,我正在克隆表格的最后一行并尝试将 ID 递增 1。

function addNewRow() {

$('#FinancialDataTable tbody').append($('#FinancialDataTable tbody tr:last').clone());

$('#FinancialDataTable tr').each(function(i) {
$(this).find('tr:last');
var selectinput = $(this).find('select');
var textinput = $(this).find('input');
var textarea = $(this).find('textarea');
i++;
selectinput.eq(0).attr('id', 'FinancialItem'+i);
textinput.eq(0).attr('id', 'FinancialAmount'+i);
textarea.eq(0).attr('id', 'FinancialDescription'+i);
});

}

我的表中的表行有以下代码:

<table id="FinancialDataTable">
<tr>
<td>
<div class="form-group">
<select class="form-control" id="FinancialItem"></select>
</div>
</td>
<td>
<div class="form-group">
<input class="form-control" id="FinancialAmount"></select>
</div>
</td>
<td>
<div class="form-group">
<textarea class="form-control" id="FinancialAmount"></select>
</div>
</td>
</tr>
</table>
<button type="button">Add New Row</button>

不是将新添加的行递增 1,而是将原始行更改为:

    <table id="FinancialDataTable">
<tr>
<td>
<div class="form-group">
<select class="form-control" id="FinancialItem2"></select>
</div>
</td>
<td>
<div class="form-group">
<input class="form-control" id="FinancialAmount2"></select>
</div>
</td>
<td>
<div class="form-group">
<textarea class="form-control" id="FinancialAmount2"></select>
</div>
</td>
</tr>
</table>
<button type="button">Add New Row</button>

当我再次点击按钮时,我得到:

    <table id="FinancialDataTable">
<tr>
<td>
<div class="form-group">
<select class="form-control" id="FinancialItem3"></select>
</div>
</td>
<td>
<div class="form-group">
<input class="form-control" id="FinancialAmount3"></select>
</div>
</td>
<td>
<div class="form-group">
<textarea class="form-control" id="FinancialAmount3"></select>
</div>
</td>
</tr>
</table>
<button type="button">Add New Row</button>

任何帮助将不胜感激! JSFIDDLE

最佳答案

  1. 删除不必要的 $(this).find('tr:last');,您不需要它,因为您已经在使用 $('#FinancialDataTable tr') .each() 循环遍历表格行。
  2. 删除 i++;,因为 .each() 会为您递增。
  3. 如果你想让第一行的ID保持#FinancialDataTable而不是变成#FinancialDataTable1,只要在case i中加一个return是一个,这意味着您当前正在查看第一行。

您的最终代码如下所示:( JSFiddle )

$('.btn').click(function () {

$('#FinancialDataTable tbody').append($('#FinancialDataTable tbody tr:last').clone());

$('#FinancialDataTable tr').each(function(i) {
if (i === 1)
return;

var selectinput = $(this).find('select');
var textinput = $(this).find('input');
var textarea = $(this).find('textarea');
selectinput.eq(0).attr('id', 'FinancialItem' + i);
textinput.eq(0).attr('id', 'FinancialAmount' + i);
textarea.eq(0).attr('id', 'FinancialDescription' + i);
});

});

关于jquery - 克隆表行并将 ID 递增 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30876089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com