jQuery删除表单某一行报错
先删除第一行,可正常删除,再删除第三行报错
js代码
delete: function (index, fn) {
rows.map(function (item, i) {
if (i > index) {
fn && fn(item, --i);
}
});
rows[index].remove();
rows.splice(index, 1);
}
rows为表单数组,index为删除的数组项
通过打印index,定位到问题原因是删除第一项后,数组长度变为2,此时删除最后一项,index为2
rows[2]为undefined
解决方法
// 删除一行后替换为空,保证索引正确
rows.splice(index, 1, '');
这样就能够保证数组长度不变,删除当前行的索引不变,且空字符串渲染为空白