/**
* 合并列单元格方法,table不可以有th
* @method mergeCell
* @author wpj
* @param tableId 表格ID
* @param startRow 开始合并的行数
* @param col 开始合并的列数
* @return
*/
function mergeCell(tableId, startRow, col) {
var tb = document.getElementById(tableId);
//超过最大列数时退出
if (col >= tb.rows[0].cells.length){return;}
//开始合并的行数
var rowMergerNum=0;
//合并的行数量
var rowMergerSum=0;
//开关变量,用于多行合并时的逻辑开关
var flag=true;
for (var i = startRow; i < tb.rows.length-1; i++) {
//判断该是否已合并过
var colNum=col-tb.rows[0].cells.length+tb.rows[i].cells.length;
var colNumNext=col-tb.rows[0].cells.length+tb.rows[i + 1].cells.length;
if (tb.rows[i].cells[colNum].innerHTML == tb.rows[i + 1].cells[colNumNext].innerHTML) {
//记录合并开始行
if(rowMergerSum == 0){
rowMergerNum=i;
flag=false;
}
rowMergerSum++;
} else {
flag=true;
}
if(rowMergerSum >= 1 && (flag || i == tb.rows.length-2)){
for(var j=1;j<=rowMergerSum;j++){
var colMergerNum=col-tb.rows[0].cells.length+tb.rows[rowMergerNum].cells.length;
var colMergerNumNext=col-tb.rows[0].cells.length+tb.rows[rowMergerNum+j].cells.length;
tb.rows[rowMergerNum+j].removeChild(tb.rows[rowMergerNum+j].cells[colMergerNumNext]);
tb.rows[rowMergerNum].cells[colMergerNum].rowSpan = (tb.rows[rowMergerNum].cells[colMergerNum].rowSpan | 0) + 1;
}
rowMergerNum=0;
rowMergerSum=0;
}
}
mergeCell(tableId, startRow, col+1);
};