就像竹林的灯火,被风吹过,摇摇曳曳,但永不熄灭!

html table 相同单元格合并

//合并行([开始行号,结束行号],[开始列号,结束列号])
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]]);
       }
}

 

posted @ 2022-06-21 20:43  竹林的灯火  阅读(1145)  评论(0编辑  收藏  举报

w3school 在线教程 | 博客园 | sxsoft | 快包网 | 荆门泽优软件有限公司博客