正常思维:
for (var i=0; i<checks.length; i++) {
if (ckb[i].checked) {
ckb[i].parentNode.parentNode.parentNode.removeChild(ckb[i].parentNode.parentNode);
}
}
此写法,当第一行被删除时,以前的第 i+1 行变成了 i 行,结构受到影响,所以这样并不能遍历删除选中的所有行数。
正确写法:
for (var i=checks.length-1; i>=0; i--) {
if (ckb[i].checked) {
ckb[i].parentNode.parentNode.parentNode.removeChild(ckb[i].parentNode.parentNode);
}
}
反过来,从第 i+1 行开始删除,就不会影响到第 i 行的行数。