js合并table儲存格(拼table的時候並不知道具體幾行幾列)

來源:互聯網
上載者:User

js合并table儲存格(拼table的時候並不知道具體幾行幾列)

Sys.Application.add_load(function () {    var tab = document.getElementById("ctl00_ContentPlaceHolder1_viewcontrolTT_Repeater1_ctl00_viewcontrolTT_grid"); //要合并的tableID    if (!tab) {        alert("未擷取到表格!");    }    else {        //從第二行開始,排除標題列        var startRow = 1;        //迴圈記錄表格中td的內容,用來判斷td中的value是否發生了改變        var td1TempV = "";        var td2TempV = "";        var td3TempV = "";        //如果td的值相同,那麼變數加1, 否則將臨時變數加入集合中        var rowCount1 = 1;        var rowCount2 = 1;        var rowCount3 = 1;        //得到相同內容的行數的集合www.bkjia.com        var totalcount1 = new Array();        var totalcount2 = new Array();        var totalcount3 = new Array();        for (var i = 1; i < tab.rows.length; i++) {            //首先拿出來td的值            var td1Text = tab.rows[i].cells[0].innerText;            var td2Text = tab.rows[i].cells[1].innerText;            var td3Text = tab.rows[i].cells[2].innerText;            //如果是第一次走迴圈,直接continue;             if (i == startRow) {                td1TempV = td1Text;                td2TempV = td2Text;                td3TempV = td3Text;                continue;            }            //如果當前拿出來的值和出處的值相同,那麼將臨時數量加1,否則添加到集合裡面            if (td1TempV == td1Text && td1Text != null && td1Text != "") {                rowCount1++;            } else {                totalcount1.push(rowCount1);                td1TempV = td1Text;                rowCount1 = 1;            }            if (td2TempV == td2Text && td2Text != null && td2Text != "") {                rowCount2++;            } else {                totalcount2.push(rowCount2);                td2TempV = td2Text;                rowCount2 = 1;            }            if (td3TempV == td3Text && td3Text != null && td3Text != "") {                rowCount3++;            } else {                totalcount3.push(rowCount3);                td3TempV = td3Text;                rowCount3 = 1;            }            //判斷是否是迴圈的最後一次,如果是最後一次那個直接將當前的數量儲存到集合裡面            if (i == tab.rows.length - 1) {                totalcount1.push(rowCount1);                totalcount2.push(rowCount2);                totalcount3.push(rowCount3);            }        }        //臨時變數,再迴圈中判斷是否和數組中的一項值相同          var tNum1 = 0;        var tNum2 = 0;        var tNum3 = 0;        //注意這個迴圈是倒著來的        for (var i = tab.rows.length - 1; i >= startRow; i--) {            //臨時變數,儲存td              var tTd1 = tab.rows[i].cells[0];            var tTd2 = tab.rows[i].cells[1];            var tTd3 = tab.rows[i].cells[2];            tNum1++;            tNum2++;            tNum3++;            if (tab.rows.length == 2) {                continue;            }            //如果發現tNum和數組中最後一個值相同,那麼就可以斷定相同的td已經結束[只是其中一個]             if (tNum1 == totalcount1[totalcount1.length - 1]) {                //給當前td添加rowSpan屬性                tTd1.setAttribute("rowSpan", totalcount1[totalcount1.length - 1]);                tTd1.setAttribute("style", "background-color:#ffffff");                //將數組的最後一個元素彈出                totalcount1.pop();                tNum1 = 0;            } else {                //刪除當前td                  tab.rows[i].removeChild(tTd1);            }            if (tNum2 == totalcount2[totalcount2.length - 1]) {                //給當前td添加rowSpan屬性                tTd2.setAttribute("rowSpan", totalcount2[totalcount2.length - 1]);                tTd2.setAttribute("style", "background-color:#ffffff");                //將數組的最後一個元素彈出                totalcount2.pop();                tNum2 = 0;            } else {                //刪除當前td                  tab.rows[i].removeChild(tTd2);            }            if (tNum3 == totalcount3[totalcount3.length - 1]) {                //給當前td添加rowSpan屬性                tTd3.setAttribute("rowSpan", totalcount3[totalcount3.length - 1]);                tTd3.setAttribute("style", "background-color:#ffffff");                //將數組的最後一個元素彈出                totalcount3.pop();                tNum3 = 0;            } else {                //刪除當前td                  tab.rows[i].removeChild(tTd3);            }        }    }});

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.