普通表格合并
<title>表格合并</title> <table width="400" border="1" id="table1"> <tr> <td>a</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> </tr> <tr> <td>a</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td>6</td> </tr> <tr> <td>a</td> <td>2</td> <td>3</td> <td>3</td> <td>4</td> <td></td> </tr> <tr> <td>b</td> <td>3</td> <td>4</td> <td>6</td> <td>7</td> <td></td> </tr> <tr> <td>b</td> <td>3</td> <td>5</td> <td>6</td> <td>7</td> <td></td> </tr> <tr> <td>cc</td> <td>2</td> <td>3</td> <td>4</td> <td>5</td> <td></td> </tr> <tr> <td>cc</td> <td>2</td> <td>3</td> <td>5</td> <td>5</td> <td></td> </tr> <tr> <td>d</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td></td> </tr> <tr> <td>e</td> <td>1</td> <td>2</td> <td>3</td> <td>4</td> <td></td> </tr> </table> <br /> </div>
function mc (tableId, startRow, endRow, col) { var tb = document.getElementById(tableId) if (col >= tb.rows[0].cells.length) { return } if (col === 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[0].innerHTML) { tb.rows[i + 1].removeChild(tb.rows[i + 1].cells[0]) tb.rows[startRow].cells[col].rowSpan = (tb.rows[startRow].cells[col].rowSpan | 0) + 1 if (i === endRow - 1 && startRow !== endRow) { mc(tableId, startRow, endRow, col + 1) } } else { mc(tableId, startRow, i + 0, col + 1) startRow = i + 1 } } }
mc('table1', 0, 0, 0)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现