使用JavaScript合并单元格

今天在写代码的时候要求对表格进行合并和统计,但是在合并的过程中出现了好多问题,不过最终还是解决啦,O(∩_∩)O~~,下面把写好的代码展示出来

 <table border="2px " align="center" id="GoodsTable">
                                <thead>
                                <tr>
                                    <th>商品コド</th>
                                    <th>商品名</th>
                                    <th>受注コド</th>
                                    <th>出庫數</th>
                                    <th>合計出庫數</th>
                                </tr>
                                </thead>
                                <tbody id="GoodsTbody">


                                <tr>
                                    <td>1002</td>
                                    <td>ball</td>
                                    <td>10001</td>
                            <td>100</td>
                            <td>300</td>

                        </tr>
                        <tr>
                            <td>1002</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1002</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1001</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1001</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1001</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1003</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1003</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1003</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1004</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1004</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1004</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>
                        <tr>
                            <td>1004</td>
                            <td>ball</td>
                            <td>10001</td>
                            <td>100</td>
                            <td>300</td>
                        </tr>


                        </tbody>

                    </table>

  合并单元格之前的效果

 加入下边的JavaScript脚本代码

<script type="text/javascript">


    function merge1() {
//      获取当前的表
        var tb = document.getElementById("GoodsTbody");
//       获取行数

//       设置跨行动态变量
        var rowsnum = tb.rows.length;
//第一次遍历,该遍历主要是为了把一个表看成了两个表,然后两个表两相对应
        for (var i = 0; i < rowsnum; i++) {
//            获取第一列里边的值
            var TempStr = tb.rows[i].cells[0].innerHTML;
//            在求总和时赋予初始值
            var total = parseInt(tb.rows[i].cells[3].innerHTML);
//            跨行为0
            rowspan = 0;
//            第二次遍历,不要让自己与自己比较
            for (var j = i + 1; j < rowsnum; j++) {

                if (TempStr == tb.rows[j].cells[0].innerHTML) {
                    rowspan++;
//              求和计算
                    total += parseInt(tb.rows[j].cells[3].innerHTML);
//                    alert("rownums is " + rowspan + "and I is " + i + "and j is" + j + "and total is" + total);
//                  设置跨行
                    tb.rows[i].cells[0].rowSpan = rowspan + 1;
                    tb.rows[i].cells[1].rowSpan = rowspan + 1;
                    tb.rows[i].cells[4].rowSpan = rowspan + 1;
//                    求和操作
                    tb.rows[i].cells[4].innerHTML = total;
//                    不显示以下列
                    tb.rows[j].cells[0].style.display = "none";
                    tb.rows[j].cells[1].style.display = "none";
                    tb.rows[j].cells[4].style.display = "none";

                }
            }
        }

    }
    merge1();

</script>

  

原文地址:https://www.cnblogs.com/zhengzuozhanglina/p/5998237.html