gpt4 book ai didi

javascript - 在 Javascript 中动态地向表中添加多行

转载 作者:行者123 更新时间:2023-11-30 12:59:08 25 4
gpt4 key购买 nike

我希望能够向表中添加任意多的行,以便它动态增长和收缩。 (现在我只是专注于它的增长)当我想在表格底部添加一行时,这段代码效果很好,但是当我想在表格中间添加一行时,我的代码不太正确,(我得到一个错误)。

例如。

标题 |标题 |标题 |
1....| 1.... | 1.... |添加按钮

几分钟后

标题 |标题 |标题 |
1....| 1....| 1....|添加按钮
2....| 2....| 2....| addBtn <- 我点击这个
3....| 3....| 3....|添加按钮
4....| 4....| 4....|添加按钮

成为...

标题 |标题 |标题 |
1....| 1....| 1....|添加按钮
2....| 2....| 2....| addBtn <- 我点击了这个
3....| 3....| 3....| addBtn <- 它创建了这一行
4....| 4....| 4....| addBtn <- 这一行曾经在 3
5....| 5....| 5....| addBtn <- 这一行曾经在 4

我是新手,但我花了一天时间尝试让它工作;还查看了似乎对我不起作用的克隆功能。我也从未使用过输入数组,所以如果这不正确,那么您会推荐什么?

<script>
function displayResult(j)
{
if (j <= document.getElementById("purchaseItems").rows.length) {
for (var i= document.getElementById("purchaseItems").rows.length; i>j ;i--) {
var elName = "addRow[" + i + "]";
var newName = "addRow[" + (i+1) + "]";
var newClick = "displayResult(" + (i+1) + ")";
var modEl = document.getElementsByName(elName);

modEl.setAttribute("onclick", newClick);
document.getElementsByName("addRow[" + i + "]").setAttribute('name', "addRow[" + (i+1) + "]");
}
}
var table=document.getElementById("purchaseItems");
var row=table.insertRow(j);
var cell1=row.insertCell(0);
var cell2=row.insertCell(1);
var cell3=row.insertCell(2);
var cell4=row.insertCell(3);
var cell5=row.insertCell(4);
cell1.innerHTML="<input type=text class='tbDescription' name='description[]' required/>";
cell2.innerHTML="<input type=text name='itemPrice[]' required />";
cell3.innerHTML="<input type=text name='itemquantity[]' required />";
cell4.innerHTML="<input type='text' name='lineTotal[]' readonly />";
cell5.innerHTML="<input type='button' name='addRow["+ j + "]' class='add' onclick=\"displayResult(" + (j+1) + ")\" value='+' />";
}

这是HTML

<table id= "purchaseItems" name="purchaseItems" align="center">
<tr>
<th>Description</th>
<th>price</th>
<th>quantity</th>
<th>Line Total</th>
<td>&nbsp;</td>
</tr>
<tr>
<td><input type="text" name="description[]" class="tbDescription" required /></td>
<td><input type="text" name="price[]" required /></td>
<td><input type="text" name="quantity[]" required /></td>
<td><input type="text" name="lineTotal[]" readonly /></td>
<td><input type="button" name="addRow[1]" onclick="displayResult(2)" class="add" value='+' /></td>
</tr>

最佳答案

所以我得到了工作人员的一些帮助。这是我们得到的:

$(document).on('click', '#purchaseItems .add', function(){

var row = $(this).closest('tr');
var clone = row.clone();

// clear the values
var tr = clone.closest('tr');
tr.find('input[type=text]').val('');

$(this).closest('tr').after(clone);

});

这是我的第一个 fiddle 中的一个活生生的例子。

http://jsfiddle.net/paulscicluna/h5DV5/

关于javascript - 在 Javascript 中动态地向表中添加多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17918577/

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