• 根据数据生成表格并合并单元格


    项目中有需求根据返回的数据生成表格并合并单元格,今天记录下。

    dom结构如下:

    <table id="mytable">
            <thead>
                <tr>
                    <th>兑换商品</th>
                    <th>姓名</th>
                    <th>工号</th>
                    <th>兑换数量</th>
                    <th>合计</th>
                </tr>
            </thead>
            <tbody id="mytbody">
            </tbody>
    </table>

    js代码如下:

    var tableJson = {
        "tableList":[
            {
                "goods":"电影券",
                "userList":[
                    {
                        "name":"张三",
                        "wordNum":"123",
                        "exchangeNum":"3"
                    },{
                        "name":"李四",
                        "wordNum":"456",
                        "exchangeNum":"6"
                    },{
                        "name":"王五",
                        "wordNum":"789",
                        "exchangeNum":"9"
                    }
                ],
                "total":"18"
            },{
                "goods":"购物券",
                "userList":[
                    {
                        "name":"张三",
                        "wordNum":"123",
                        "exchangeNum":"1"
                    },{
                        "name":"李四",
                        "wordNum":"456",
                        "exchangeNum":"4"
                    },{
                        "name":"王五",
                        "wordNum":"789",
                        "exchangeNum":"7"
                    }
                ],
                "total":"12"
            }
        ]
    };
    var getTbodyHtml = function(data){
        var tbodyHtml = '';
        for(var i=0;i<data.length;i++){
            for(var j=0;j<data[i].userList.length;j++){
                if(j == 0){
                    tbodyHtml += "<tr><td rowspan="+data[i].userList.length+">"+data[i].goods+"</td><td>"+data[i].userList[j].name+"</td><td>"+data[i].userList[j].wordNum+"</td><td>"+data[i].userList[j].exchangeNum+"</td><td rowspan="+data[i].userList.length+">"+data[i].total+"</td></tr>";
                }else{
                    tbodyHtml += "<tr><td>"+data[i].userList[j].name+"</td><td>"+data[i].userList[j].wordNum+"</td><td>"+data[i].userList[j].exchangeNum+"</td></tr>";
                }
            }
        };
        return tbodyHtml;
    };
    
    document.getElementById('mytbody').innerHTML = getTbodyHtml(tableJson.tableList);

    效果如下图:

    如有表述不准确之处,欢迎指正,欢迎补充,感谢阅读。

  • 相关阅读:
    mysql清空表中内容
    Proteus元件查找
    HDG12864F1 proteus仿真取模【PCtoLCD完美版】
    OLED取模(汉字加图片)
    Failed to connect to ESP8266: Timed out waiting for packet header
    AD常用快捷键
    Authentication method 'caching_sha2_password' not supported by any of the available plugins.
    spark阶段学习总结(三)
    spark阶段学习总结(一)
    spark阶段学习总结(二)
  • 原文地址:https://www.cnblogs.com/wangzhenyu666/p/8302881.html
Copyright © 2020-2023  润新知