html table 相同单元格合并
//合并行([开始行号,结束行号],[开始列号,结束列号]) rowSpan : function (cRow,cCol){ var tab = document.getElementById("tableReport${idSuffix}"); if(!tab){ return; } var colTemp = null; var colSpanNum = 0; 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; colTemp = null; colSpanNum = 0; 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]; } //列合并 if(colTemp && colTemp.innerText == tdText){ colSpanNum += Number(cells[j].getAttribute("colSpan")) || 1; removeArr.push([i,j]); if (j+1 >= h || j+1 > cCol[1]) { if(colSpanNum > 0) { colTemp.setAttribute("colSpan",colSpanNum + (Number(colTemp.getAttribute("colSpan")) || 1)); } } }else { if(colSpanNum > 0) { colTemp.setAttribute("colSpan",colSpanNum + (Number(colTemp.getAttribute("colSpan")) || 1)); } colSpanNum = 0; colTemp = 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]]); } }
------------ 就像竹林的灯火,被风吹过,摇摇曳曳,但永不熄灭! ------------------------

浙公网安备 33010602011771号