使用JavaScript动态自动合并table指定表格列、行相同的单元表格

[复制链接]
test 发表于 2023-7-15 09:12:20 | 显示全部楼层 |阅读模式
1.合并指定的列

[JavaScript] 纯文本查看 复制代码
/**
* @ function:合并指定表格列(表格id为table_id)指定列(列数为table_colnum)的相同文本的相邻单元格
* @ param:table_id 为需要进行合并单元格的表格的id。如在HTMl中指定表格 id="data" ,此参数应为 #data 
* @ param:table_colnum 为需要合并单元格的所在列。为数字,从最左边第一列为1开始算起。
*/
function table_rowspan(table_id, table_colnum) {
    var table_firsttd = "";
    var table_currenttd = "";
    var table_SpanNum = 0;
    var table_Obj = $(table_id + " tr td:nth-child(" + table_colnum + ")");
    table_Obj.each(function (i) {
        if (i == 0) {
            table_firsttd = $(this);
            table_SpanNum = 1;
        } else {
            table_currenttd = $(this);
            //alert($(this).attr('value'));
            if (table_firsttd.text() == table_currenttd.text()) { //这边注意不是val()属性,而是text()属性
                //td内容为空的不合并
                if(table_firsttd.text() !=""){
                    table_SpanNum++;
                    table_currenttd.hide(); //remove();
                    table_firsttd.attr("rowSpan", table_SpanNum);
                }
            } else {
                table_firsttd = $(this);
                table_SpanNum = 1;
            }
        }
    });
}


2.合并指定的行
[JavaScript] 纯文本查看 复制代码
/**
* @ function:合并指定表格列(表格id为table_id)指定列(列数为table_colnum)的相同文本的相邻单元格
* @ param:table_id 为需要进行合并单元格的表格的id。如在HTMl中指定表格 id="data" ,此参数应为 #data 
* @ param:table_colnum 为需要合并单元格的所在列。为数字,从最左边第一列为1开始算起。
*/
function table_rowspan(table_id, table_colnum) {
    var table_firsttd = "";
    var table_currenttd = "";
    var table_SpanNum = 0;
    var table_Obj = $(table_id + " tr td:nth-child(" + table_colnum + ")");
    table_Obj.each(function (i) {
        if (i == 0) {
            table_firsttd = $(this);
            table_SpanNum = 1;
        } else {
            table_currenttd = $(this);
            //alert($(this).attr('value'));
            if (table_firsttd.text() == table_currenttd.text()) { //这边注意不是val()属性,而是text()属性
                //td内容为空的不合并
                if(table_firsttd.text() !=""){
                    table_SpanNum++;
                    table_currenttd.hide(); //remove();
                    table_firsttd.attr("rowSpan", table_SpanNum);
                }
            } else {
                table_firsttd = $(this);
                table_SpanNum = 1;
            }
        }
    });
}


我有罪
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

快速回复 返回顶部 返回列表