动态获取后端数据后,table中数据相同的单元格- td合并

                //从第二行开始,排除标题行
                var startRow = 1;
                //循环记录表格中td的内容,用来判断td中的value是否发生了改变
                var td1TempV = "";
                //如果td的值相同,那么变量加1, 否则将临时变量加入集合中
                var rowCount1 = 1;
                //得到相同内容的行数的集合www.2cto.com
                var totalcount1 = new Array();
                for (var i = 1; i < tab.rows.length; i++) {
                    //首先拿出来td的值
                    var td1Text = tab.rows[i].cells[0].innerText;
                    //如果是第一次走循环,直接continue;
                    if (i == startRow) {
                        td1TempV = td1Text;
                        continue;
                    }
                    //如果当前拿出来的值和出处的值相同,那么将临时数量加1,否则添加到集合里面
                    if (td1TempV == td1Text && td1Text != null && td1Text != "") {
                        rowCount1++;
                    } else {
                        totalcount1.push(rowCount1);
                        td1TempV = td1Text;
                        rowCount1 = 1;
                    }
                    //判断是否是循环的最后一次,如果是最后一次那个直接将当前的数量存储到集合里面
                    if (i == tab.rows.length - 1) {
                        totalcount1.push(rowCount1);
                    }
                }
                //临时变量,再循环中判断是否和数组中的一项值相同
                var tNum1 = 0;
                //注意这个循环是倒着来的
                for (var i = tab.rows.length - 1; i >= startRow; i--) {
                    //临时变量,存储td
                    var tTd1 = tab.rows[i].cells[0];
                    tNum1++;
                    if (tab.rows.length == 2) {
                        continue;
                    }
                    //如果发现tNum和数组中最后一个值相同,那么就可以断定相同的td已经结束[只是其中一个]
                    if (tNum1 == totalcount1[totalcount1.length - 1]) {
                        //给当前td添加rowSpan属性
                        tTd1.setAttribute("rowSpan", totalcount1[totalcount1.length - 1]);
                        tTd1.setAttribute("style", "background-color:#ffffff");
                        //将数组的最后一个元素弹出
                        totalcount1.pop();
                        tNum1 = 0;
                    } else {
                        //删除当前td
                        tab.rows[i].removeChild(tTd1);
                    }
                }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值