html表格多行修改,js动态修改数据实现table相同行合并

21749ac42efd

原table未合并单元格

21749ac42efd

合并后table

完整示例代码:

时间课程

//原始数据

var list = [

{time:'上午',course:'语文'},

{time:'上午',course:'数学'},

{time:'上午',course:'英语'},

{time:'上午',course:'化学'},

{time:'下午',course:'物理'},

{time:'下午',course:'地理'},

{time:'下午',course:'体育'},

{time:'晚上',course:'自习'}

];

//循环遍历

for (var i = 0;i

//循环开始行

var start_row ;

//需合并的行数

var rowspan = 1;

//循环到最后一行时

if(i==list.length-1){

//如果最后一行和倒数第二行属性不同,则rowspan=1;否则直接结束循环

if(list[i].time!=list[i-1].time){

list[i].rowspan = rowspan;

}

break;

}

//内层循环记录rowspan的数量

for (var j = i;j

//记录循环结束的行数

start_row=j;

//属性相同则rowspan+1;否则直接结束内循环

if(list[j].time==list[j+1].time){

rowspan ++;

}else{

break;

}

}

//为数组添加rowspan属性

list[i].rowspan = rowspan;

//控制外循环从内循环结束的行数开始

i = start_row;

}

/*

处理完数据:

list = [

{time: "上午", course: "语文", rowspan: 4},

{time: "上午", course: "数学"},

{time: "上午", course: "英语"},

{time: "上午", course: "化学"},

{time: "下午", course: "物理", rowspan: 3},

{time: "下午", course: "地理"},

{time: "下午", course: "体育"},

{time: "晚上", course: "自习", rowspan: 1}

]

*/

//页面渲染

var tbody = document.getElementsByTagName('tbody');

var html = '';

for (var i = 0;i

html += '

';

//动态添加rowspan属性

if(list[i].rowspan != null){

html += '

'+list[i].time+'';

}

html += '

'+list[i].course+'';

}

tbody[0].innerHTML = html;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值