原始表格
合并后的单元格
直接上代码
//合并第一列单元格
//给tbody下的第一行(tr:first-child)第一个单元格(td').eq(0))
//加上rowspan 长度是这个表格tr的长度(attr('rowspan', $("tbody tr").length);)
$('tbody tr:first-child td').eq(0).attr('rowspan', $("tbody tr").length);
var num = $('tbody tr').length;
for (i = 0 ; i<=num; i++){
debugger
//判断tr下面是否有孩子,有则进行(这个判断不太正确 我不是专业的前端,大家有时间可以自行练习一下)
if($('tbody tr').find(':nth-child('/i+2/')')){
//遍历tr 注意这一步比较重要 这是删除td单元格的操作,因为第一列合并的话,
//那么被合并的单元格就会挤到第二列,所以需要拿到第二列所有行(第一行除外)的第一个单元格给删掉,
//删掉的是第一列被合并挤到后面的单元格。
$('tbody tr').filter(function(index) {
// index是当前tr元素的索引(从0开始)
// 检查索引是否大于等于i+2(因为:nth-child是从1开始计数的)
return index >= i + 1; // 注意:这里的比较是index和i+1,因为index是从0开始的
}).find('td').eq(0).remove()
}
}
//该串代码与上面类似,就不再解释了
//合并第二列单元格
$('tbody tr:first-child td').eq(1).attr('rowspan', $("tbody tr").length);
var num = $('tbody tr').length;
for (i = 0 ; i<=num; i++){
debugger
if($('tbody tr').find(':nth-child('/i+2/')')){
$('tbody tr').filter(function(index) {
// index是当前tr元素的索引(从0开始)
// 检查索引是否大于等于i+2(因为:nth-child是从1开始计数的)
return index >= i + 1; // 注意:这里的比较是index和i+1,因为index是从0开始的
}).find('td').eq(1).remove()
}
}
到此为止
这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!!!