我使用javascript添加行一切正常,但是当我删除中间行时,行数没有得到更新。
行数如下:1,2,3,4,5
如果我删除第3行,它会像:1,2,4,5
HTML
<table class="table table-hover" id="add-row">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th style="text-align: right;">Delete</th>
</tr>
</thead>
<tbody id="add-row1">
<tr>
<td>1</td>
<td>
<input type="text" class="form-control input-sm" placeholder="Enter Group Name" id="group" /></td>
<td>
<button class="btn btn-sm btn-danger pull-right" id="delPOIbutton" onclick="deleteRow(this)"><i class="fa fa-close"></i>Delete</button></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3">
<button class="btn btn-sm btn-success pull-right"><i class="fa fa-save"></i>Save</button>
<button class="btn btn-sm btn-primary" id="addmore" onclick="insRow()"><i class="fa fa-plus"></i>Add</button>
</td>
</tr>
</tfoot>
</table>
的Javascript
function deleteRow(row) {
var i = row.parentNode.parentNode.rowIndex;
if (i > 1) {
document.getElementById('add-row').deleteRow(i);
}
else {
document.getElementById('add-row').getElementsByTagName('input')[0].value = '';
}
}
function insRow() {
var x = document.getElementById('add-row');
var x1 = document.getElementById('add-row1');
var new_row = x.rows[1].cloneNode(true);
var len = x.rows.length;
new_row.cells[0].innerHTML = len - 1;
var inp1 = new_row.cells[1].getElementsByTagName('input')[0];
inp1.id += len;
inp1.value = '';
x1.appendChild(new_row);
}
<table class="table table-hover" id="add-row">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th style="text-align: right;">Delete</th>
</tr>
</thead>
<tbody id="add-row1">
<tr>
<td>1</td>
<td>
<input type="text" class="form-control input-sm" placeholder="Enter Group Name" id="group" /></td>
<td>
<button class="btn btn-sm btn-danger pull-right" id="delPOIbutton" onclick="deleteRow(this)"><i class="fa fa-close"></i>Delete</button></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3">
<button class="btn btn-sm btn-success pull-right"><i class="fa fa-save"></i>Save</button>
<button class="btn btn-sm btn-primary" id="addmore" onclick="insRow()"><i class="fa fa-plus"></i>Add</button>
</td>
</tr>
</tfoot>
</table>
答案 0 :(得分:3)
delete john.token; // In place of John.token = null
&#13;
function deleteRow(row) {
var i = row.parentNode.parentNode.rowIndex;
if (i > 1) {
document.getElementById('add-row').deleteRow(i);
update_number(i);
} else {
document.getElementById('add-row').getElementsByTagName('input')[0].value = '';
}
}
function update_number(i) {
var table = document.getElementById("add-row");
for (var r = 1, n = table.rows.length; r < n; r++) {
for (var c = 0, m = table.rows[r].cells.length; c < 1; c++) {
var table_date = table.rows[r].cells[0].innerHTML;
if(!isNaN(table_date)){
if (i < table_date) {
var new_data = table_date - 1;
table.rows[r].cells[0].innerHTML = new_data;
}
}
}
}
}
function insRow() {
var x = document.getElementById('add-row');
var x1 = document.getElementById('add-row1');
var new_row = x.rows[1].cloneNode(true);
var len = x.rows.length;
new_row.cells[0].innerHTML = len - 1;
var inp1 = new_row.cells[1].getElementsByTagName('input')[0];
inp1.id += len;
inp1.value = '';
x1.appendChild(new_row);
}
&#13;
您可以使用以下功能在动态删除记录时更新号码
<table class="table table-hover" id="add-row">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th style="text-align: right;">Delete</th>
</tr>
</thead>
<tbody id="add-row1">
<tr>
<td>1</td>
<td>
<input type="text" class="form-control input-sm" placeholder="Enter Group Name" id="group" />
</td>
<td>
<button class="btn btn-sm btn-danger pull-right" id="delPOIbutton" onclick="deleteRow(this)"><i class="fa fa-close"></i>Delete</button>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3">
<button class="btn btn-sm btn-success pull-right"><i class="fa fa-save"></i>Save</button>
<button class="btn btn-sm btn-primary" id="addmore" onclick="insRow()"><i class="fa fa-plus"></i>Add</button>
</td>
</tr>
</tfoot>
</table>
在你的deleteRow函数中
function update_number(i) {
var table = document.getElementById("add-row");
for (var r = 1, n = table.rows.length; r < n; r++) {
for (var c = 0, m = table.rows[r].cells.length; c < 1; c++) {
var table_date = table.rows[r].cells[0].innerHTML;
if(!isNaN(table_date)){
if (i < table_date) {
var new_data = table_date - 1;
table.rows[r].cells[0].innerHTML = new_data;
}
}
}
}
}
所做的是将function deleteRow(row) {
var i = row.parentNode.parentNode.rowIndex;
if (i > 1) {
document.getElementById('add-row').deleteRow(i);
update_number(i);
} else {
document.getElementById('add-row').getElementsByTagName('input') [0].value = '';
}
}
传递给update_number函数并动态读取表数据并更新数字。
答案 1 :(得分:0)
您必须为每行更改行号,
function RefreshRowNumber(){
$("#add-row1 tr").each(function(i,n){
var td = $(this).find('td:eq(0)').html('').append(i+1);
});
}
尝试更新您的代码,如下所示
function deleteRow(row) {
// your code here
RefreshRowNumber();
}
function insRow() {
// your code here
RefreshRowNumber();
}