【问题标题】:template literal HTML table模板文字 HTML 表格
【发布时间】:2018-09-19 07:11:33
【问题描述】:

我正在尝试创建一个表的 div,但坚持只添加到每个表的第一个项目。我得到的表只有第一个键值对。我正在通过我的数据数组进行映射,但无法访问表中的键和值。我觉得我被困在 createTableData 函数上。

HTML

<body>
<div class="container-fluid">
    <div class="jumbotron">
        <h1 class="text-center mb-3">
            Active Directory Replication Health
        </h1>
    </div>



<div id="table"></div>


</div>


<script src="js/jquery-3.3.1.min.js"></script>
<script src="js/bootstrap.bundle.min.js"></script>
<script src="js/script.js"></script>

脚本

var data = [

{
    "DC":  "SV07CTDC1",
    "Connectivity":  "Passed",
    "Advertising":  "Failed"
},
{
    "DC":  "SVGCCTDC1",
    "Connectivity":  "Passed",
    "Advertising":  "Failed"
}
];


function createTableData(dc ){

for( key in dc )
    return  `
        <tr>
            <td> ${key} </td>
            <td> ${dc[key]} </td>
        </tr>

`

}


function createTable(dc) {
return `
    <div class="col-md-3 col-sm-6  ">
        <table class="table table-dark table-striped table-bordered table-hover">

                ${createTableData(dc)}



        </table>
    </div>  
`
}






document.getElementById("table").innerHTML = `
<div class="row">
    ${data.map(createTable).join("")}
</div>
`

【问题讨论】:

  • 因为return语句是在for循环里面而不是之后

标签: javascript javascript-objects template-literals


【解决方案1】:

在你的 createTableData 函数中试试这个 ..

    function createTableData(dc) {
        var html = ''
        for (key in dc) {
        html += `
        <tr>
            <td> ${key} </td>
            <td> ${dc[key]} </td>
        </tr>            
        `
        }
        return html
    }

【讨论】:

    猜你喜欢
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2019-11-17
    • 2020-04-14
    • 2021-01-25
    • 1970-01-01
    • 2021-11-17
    相关资源
    最近更新 更多