【问题标题】:Ternary operator in Template Literal HTML TABLE模板文字 HTML TABLE 中的三元运算符
【发布时间】:2019-02-24 00:02:31
【问题描述】:

如果表格数据处于“失败”状态,我正在尝试将其设置为背景色为红色。我很难设置这种内联样式。起初我尝试在 createTableData 函数的第二个 td 中使用三元运算符,但无法使其工作。现在我正试图把它分解成它自己的功能,但也不起作用。

在设置我的表格数据的背景颜色方面寻求帮助。

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 checkStatus(status) {
status === "Failed" ? "background-color: red" : "background-color: blue"
}


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

`
return html
}


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>
`

【问题讨论】:

    标签: javascript css ternary-operator template-literals


    【解决方案1】:

    checkStatus 方法中唯一缺少的就是返回条件结果;

    function checkStatus(status) {
      return status === "Failed" ? "background-color: red" : "background-color: blue"
    }
    

    更新codepen

    【讨论】:

    • 虽然这可行,但它确实令人费解。它可以很容易地清理
    • @Jasonbamber 你能给我一些清理的想法吗?
    猜你喜欢
    • 2017-05-05
    • 1970-01-01
    • 2020-03-28
    • 2012-08-14
    • 2011-03-07
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多