我有一个问题,如果我选中了所有复选框,它只会删除底部的复选框,而不是全部。有帮助吗?
function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for (var i = 1; i < rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[9].childNodes[0];
if (null != chkbox && true == chkbox.checked) {
var name = table.rows[i].cells[i].innerHTML;
document.forms[0].action = "A.do?event=delete&name=" + name;
table.deleteRow(i);
rowCount--;
i--;
}
document.forms[0].submit();
}
} catch (e) {
alert("No item selected for deletion");
}
}
<td><input type="button" class="btnNormal" value="Delete" onclick="deleteRow('dataTable')"></td>
<td><input type="checkbox" name="chk[]" id="box"></td>
答案 0 :(得分:0)
替换您的功能
function deleteRow(tableID)
{
try
{
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=rowCount; i>=0; i--) {
var row = table.rows[i];
var chkbox = row.cells[9].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
var name = table.rows[i].cells[i].innerHTML;
document.forms[0].action="A.do?event=delete&name="+name;
table.deleteRow(i);
}
}
document.forms[0].submit();
}catch(e) {alert("No item selected for deletion");}
}
记住:
从数组中删除项目时。总是开始for循环 以降序排列。因为如果以增加的订单索引开始 每次删除后都会更改。
为什么要在for循环内提交表单。我认为这是错误的。在For Loop完成后提交。