多语言展示
当前在线:132今日阅读:179今日分享:36

如何使用JS合并单元格,夸行合并

下面小编给大家介绍一下如何用JS跨行合并单元格,希望能帮到大家
工具/原料

JS

方法/步骤
2

body里面录入一个table

3

运行效果

4

然后我们写一个合并单元格的代码

5

做一个测试调用,调用的时候,列数必须是从大到小

6

这样就能合并了,但是我们发现一个问题,合并的没有分项目,应该是一个项目内的合并

7

HTML继续加一个隐藏的项目ID

8

核心代码稍微改一下,意思就是:项目ID+名字是一样的才合并

9

再看一下,合并就对了

10

JS核心代码:  /**              * 合并单元格(如果结束行传0代表合并所有行)              * @param table1    表格的ID              * @param startRow  起始行              * @param endRow    结束行              * @param col   合并的列号,对第几列进行合并(从0开始)。第一行从0开始              */         function mergeCell(table1, startRow, endRow, col) {              var tb = document.getElementById(table1);             if (!tb || !tb.rows || tb.rows.length <= 0) {                 return;             }             if (col >= tb.rows[0].cells.length || (startRow >= endRow && endRow != 0)) {                 return;             }             if (endRow == 0) {                 endRow = tb.rows.length - 1;             }             for (var i = startRow; i < endRow; i++) {                 var r1 = tb.rows[startRow].cells[0].innerHTML;                 var r2 = tb.rows[i + 1].cells[0].innerHTML;                 if (r1 + tb.rows[startRow].cells[col].innerHTML == r2 + tb.rows[i + 1].cells[col].innerHTML) {                     tb.rows[i + 1].removeChild(tb.rows[i + 1].cells[col]);                     tb.rows[startRow].cells[col].rowSpan = (tb.rows[startRow].cells[col].rowSpan) + 1;                 } else {                     mergeCell(table1, i + 1, endRow, col);                     break;                 }             }         }

推荐信息