美文网首页
js合并单元格

js合并单元格

作者: hypercode | 来源:发表于2022-10-11 13:56 被阅读0次

代码:


<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            table,
            table tr th,
            table tr td {
                border: 1px solid #0094ff;
            }
        </style>
    </head>

    <body>
        
        <table style="border: 1px;" id="test1">
            <thead>
                <tr>
                    <th>表头1</th>
                    <th>表头2</th>
                    <th>表头3</th>
                    <th>表头4</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>列1</td>
                    <td>列2</td>
                    <td>列3</td>
                    <td>列4</td>
                </tr>
                <tr>
                    <td>列1</td>
                    <td>列2</td>
                    <td>列3</td>
                    <td>列4</td>
                </tr>
                <tr>
                    <td>列1</td>
                    <td>列2</td>
                    <td>列3</td>
                    <td>列4</td>
                </tr>
            </tbody>
        </table>
<script type="text/javascript" th:inline="javascript">
            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', 1, 3, 0);
    </script>
    </body>

</html>

效果:

截屏2022-10-12 13.55.54.png

相关文章

网友评论

      本文标题:js合并单元格

      本文链接:https://www.haomeiwen.com/subject/xmbtzrtx.html