java js合并_JS合并单元格

本文介绍了如何使用JavaScript实现Web中表格的单元格合并。提供了一个名为`mergeCell`的函数,该函数根据指定的表格ID、起始行、结束行和列号进行单元格的纵向合并。详细阐述了函数的使用方法,并给出了正确合并多列的顺序示例。
摘要由CSDN通过智能技术生成

在Web中经常需要合并单元格,例如对于下面一个表格:

table,

table tr th,

table tr td {

border: 1px solid #0094ff;

}

表头1表头2表头3表头4

列1列2列3列4列1列2列3列4列1列2列3列4

表格原来样式:

272b8748ea08fe4ca9a69101442c8eab.png

合并的JS方法:(可以作为一个工具方法)

1、纵向合并,也就是对同一列的相邻行单元格相同的进行合并

/**

* 合并单元格(如果结束行传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++) {

if(tb.rows[startRow].cells[col].innerHTML == 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;

}

}

}

例如上面:

mergeCell('test1', 0, 0, 3);

结果

19b9157a72428d3df8e7a87066a246fe.png

补充:如果想合并多列可以多次调用此方法,但是需要注意先合并后面的列,再合并前面的列

(1)合并多列正确用法

mergeCell('test1', 0, 0, 3);

mergeCell('test1', 0, 0, 2);

mergeCell('test1', 0, 0, 1);

0a8cda4934e7d15f4bcce7ec5acfa99b.png

(2)如果先合并前面的列查看效果

mergeCell('test1', 0, 0, 1);

mergeCell('test1', 0, 0, 2);

mergeCell('test1', 0, 0, 3);

0defd6b75950300d07600129ebe116cf.png

https://www.cnblogs.com/qlqwjy/category/1035591.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值