rowspan 动态变化_使用colspan和rowspan动态删除html表中的多个列

好的,您的代码中的一个问题是,您删除了当前正在使用for进行迭代的单元格。我改变了你的第一个循环来完成所有反向:for (var i = (rows[0].cells.length -1); i >= 0; i--),从后到前...所以没有索引在删除时发生变化。

第二个问题是你的内部for循环。使用第一个for循环迭代3列并在内循环中假设每行具有相同数量的cols,但事实并非如此。我更改了代码,如果单元格的colspan大于1,则减少colspan,否则删除单元格。

完整的已更新代码为:

var countColumns = function(table) {

if (!table || !table.tagName || table.tagName != 'TABLE') { throw new Error("The parameter 'table' must be a

var maxColumnsCount = 0;

for (var i = 0; i < table.rows.length; i++) {

maxColumnsCount = Math.max(table.rows[i].cells.length, maxColumnsCount);

}

return maxColumnsCount;

};

var table = document.getElementById('Just_for_california');

var rows = table.rows;

for (var i = (countColumns(table) -1); i >= 0; i--)

{

var str = '';

var cellToDelete = [];

if (rows[0].cells[i] != undefined) {

str = rows[0].cells[i].innerHTML;

cellToDelete.push(i);

} else if (rows[0].cells[i -1].colSpan > 1) {

str = rows[0].cells[i -1].innerHTML;

cellToDelete.push(i -1);

cellToDelete.push(i);

}

if (str.search("") != -1) {

for (var j = 0; j < rows.length; j++)

{

for (var k = 0; k < cellToDelete.length; k++) {

if (rows[j].cells[cellToDelete[k]] != undefined) {

if (rows[j].cells[cellToDelete[k]].colSpan > 1) {

rows[j].cells[cellToDelete[k]].colSpan -= 1;

} else {

rows[j].deleteCell(cellToDelete[k]);

}

}

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值