紧急求助,JS动态添加删除数据行信息导致网页奔溃
对于显示在动态显示在Table中的数据
操作一:如果是按照顺序自上而下从第一行删除到最后一行,再点添加行,则操作正常
操作二:如果是按照顺序自而下上的删除,再点添加行,则提示网页奔溃
JS控制函数
添加行函数:
var id;
//添加收费项目
function addTr() {
//获得表格对象
var tb = document.getElementById('PartItem');
id = tb.rows.length;
//添加一行
var newTr = tb.insertRow(-1); //在最下的位置
//给这个行设置id属性,以便于管理(删除)
newTr.id = 'PartItem' + id;
//添加两列
var newTd0 = newTr.insertCell(0);
var newTd1 = newTr.insertCell(1);
var newTd2 = newTr.insertCell(2);
var newTd3 = newTr.insertCell(3);
var newTd4 = newTr.insertCell(4);
//设置列内容和属性
newTd0.innerHTML = "<td>" + id + "</td>";
newTd1.innerHTML = "<td ><a href=\"javascript:void(0)\" onclick=\"moveTr('" + id + "','PartItem');\" >删除</a></td>";
newTd1.innerHTML += "<input style=\"display:none\" name='SFXMV' type='text' value='-1' />";
newTd2.innerHTML = "<td><input style=\"width: 80px\" name='SFXMV' type='text' /></td>";
newTd3.innerHTML = "<td><input style=\"width: 200px\" name='SFXMV' type='text' /></td>";
newTd4.innerHTML = "<td><input style=\"width: 80px\" name='SFXMV' type='text' value='0' /></td>";
id++;
}
删除行函数:
function moveTr(id, tableid) {
//获得表格对象(注意此处是表格对象Table,如果用到了thead和tbody,而取的是tbody的对象的话,删除行时需要考虑索引问题,行索引是针对整体,而如果获取的是tbody对象,删除时需要的索引是针对tbody自身,所以一定要减去thead的行数,切记切记,否则就会异常)
var tb = document.getElementById(tableid);
//根据id获得将要删除行的对象
var tr = document.getElementById(tableid + id);
//取出行的索引,设置删除行的索引
tb.deleteRow(tr.rowIndex);
tt(tableid);
//清空列表,移除全部行的方法
//while(tb_show.hasChildNodes()){
//tb_show.deleteRow();
//}
}
function tt(tableid) {
var table1 = document.getElementById(tableid);
var rows = table1.rows;
for (var i = 1; i < rows.length; i++) {
rows[i].cells[0].innerText = i;
}
}