//合并行([开始行号,结束行号],[开始列号,结束列号])
function rowSpan(cRow,cCol){
var tab = document.getElementById("table${idSuffix}");
if(!tab){
return;
}
var rowTemp = [];
var rowSpanNum = [];
var removeArr = [];
var isBreak = false;
for(var i = cRow[0], l = tab.rows.length; i < l && i <= cRow[1]; i++) {
isBreak = false;
var cells = tab.rows[i].cells;
for(var j = cCol[0], h = cells.length; j < h && j <= cCol[1]; j++){
var tdText = $.trim(cells[j].innerText);
rowSpanNum[j] = rowSpanNum[j] | 0;
if(rowTemp[j] && rowTemp[j].innerText == tdText && !isBreak){
rowSpanNum[j]++;
removeArr.push([i,j]);
}else {
isBreak = true;//前一列不同,往后的列都不合并
if(rowSpanNum[j] > 0) {
rowTemp[j].setAttribute("rowSpan",rowSpanNum[j]+1);
}
rowSpanNum[j] = 0;
rowTemp[j] = cells[j];
}
}
}
//循环结束后再循环一次,处理已存储的行
for(var j = cCol[0], h = cells.length; j < h && j <= cCol[1]; j++){
rowSpanNum[j] = rowSpanNum[j] | 0;
if(rowSpanNum[j] > 0) {
rowTemp[j].setAttribute("rowSpan",rowSpanNum[j]+1);
}
}
//倒序删除合并的行
for(var z = 0,y = removeArr.length; z < y; y--){
var arr = removeArr[y-1];
tab.rows[arr[0]].removeChild(tab.rows[arr[0]].cells[arr[1]]);
}
}