在循环错误中将行添加到表中
Add row to table inside a loop error
我在循环中有一个表,我想通过单击"添加行"按钮向表中添加一行。这是我的代码
HTML:
<div id="popUp" style="display: none">
<input type="button" value="Cancel" onclick="closePopup()">
<input type="button" value="ADD" onclick="addRow(this)"/>
</div>
@for (int i = 0; i < 3; i++) {
<table id="table @i" class="tableSum">
<thead>
<tr>
<td>Items</td>
<td>Quantity</td>
<td>Price</td>
</tr>
</thead>
<tbody>
<tr>
<td>Apple</td>
<td>5</td>
<td>100</td>
</tr>
<tr>
<td>Organe</td>
<td>5</td>
<td>200</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>Total</td>
<td></td>
<td></td>
</tr>
<tr><td colspan="3"><input type="button" class="addRow" onclick="addRow(this)" value="ADD ROW"/></td></tr>
</tfoot>
</table>
}
然后在javascript中,我编写了函数:
function addRow(table) {
$(table).find('tbody tr:last').clone().appendTo(table);
}
但是它没有添加一行。如果我使用不带参数"table"的函数,新行将添加到循环中的所有表中
我想要的结果是:当用户单击按钮时,只会在一个表中添加一个新行,而不是添加到所有表中。
td
上的onclick="addRow(this)"
。则CCD_ 3将表示所述替代CCD_。不是table
。您可以传递id
或表的某个选择器,或者在脚本中找到父table
。
您可以使用parents()
来查找父table
。
function addRow(td) {
var table = $(td).parents('table');
var cloned = table.find('tbody tr:last').clone();
table.find('tbody').append(cloned);
}
此外,如果您希望所有事件都能正常工作,请使用clone(true)
。否则,您必须将事件bind
转换为tr
。
您需要使用最接近的方法首先找到其父表:
function addRow(table) {
$(table).closest('table')//find parent table
.find('tbody tr:last')//find last tr of the table
.clone()//clone it
.appendTo($(table).closest('table').find('tbody'));//append it to tbody
//append to 'tbody' not this row
}
根据您更新的问题,给您:
function addRow(table) {
$(table).parent()//find parent div
.next()//get the table
.find('tbody tr:last')//find last tr of the table
.clone()//clone it
.appendTo($(table).parent().next().find('tbody'));//append it to tbody
//append to 'tbody' not this row
}
相关文章:
- 如何在for循环中添加事件侦听器
- 如何使用for循环添加所有按钮'单击事件
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- 在不使用循环的情况下,从一个数据库字符串值向javascript数组添加多个对象
- js:如何制作一个循环,将20个不同的东西添加到一个对象中
- 借助for循环和数组在对象中添加属性
- Foreach循环添加值略有偏离
- 使用游标循环将JS对象添加到数组中
- foreach对象循环添加到堆栈顶部
- 在循环中添加addEventListener()只适用于最后一个按钮
- 如何在JavaScript中移除在循环中连接字符串时添加的额外字符
- 在循环中为日期添加天数,javascript
- Jquery循环洗涤器插件:添加到图像的链接
- 使用Javascript为HTML5音频添加循环
- 在 Jquery 中添加循环变量并存储在输入字段中
- 向 ajax 参数添加循环
- 如何使用jquery添加循环多个HTML5视频
- 如何在jQuery函数中传递数组或添加循环
- 可以在追加到 DOM 时添加循环
- 在较大的动画函数中为3个小动画添加循环函数