使用javascript根据json值更改表格单元格背景颜色

使用javascript根据json值更改表格单元格背景颜色,javascript,Javascript,我试图通过基于json值更改颜色表单元格背景来显示客户端的状态(向上或向下): [{ "client": "client1", "ip": "127.0.0.1", "status": "up" }, { "client": "client2", "ip": "127.0.0.2", "status": "up" }] 我迄今为止的努力: <script> $.getJSON("<webaddress>/clients.j

我试图通过基于json值更改颜色表单元格背景来显示客户端的状态(向上或向下):

[{
    "client": "client1",
    "ip": "127.0.0.1",
    "status": "up"
}, {
    "client": "client2",
    "ip": "127.0.0.2",
    "status": "up"
}]
我迄今为止的努力:

<script>
$.getJSON("<webaddress>/clients.json",
function (data) {
    var tr;
    for (var i = 0; i < data.length; i++) {
        tr = $('<tr/>');
        tr.append("<td>" + data[i].client + "</td>");
        $('table').append(tr);


        if(data[i].status == "up")
        {
          $('td').css ('background-color', 'green');
         } else {
          $('td').css('background-color', 'red');
         };    

}


});


</script>

<style type="text/css">

.table {
  width: 300px !important;
}

</style>

<div>
<table class="table">
    <tr>
        <th>Clients</th>
    </tr>
</table>
</div>

$.getJSON(“/clients.json”,
功能(数据){
var-tr;
对于(变量i=0;i
当状态为“向上”时,单元格背景保持绿色,但即使我将一个状态更改为“向下”,所有单元格背景也将变为红色。我知道这可能很明显,但我的js知识不是很好,这对我没什么帮助。

您使用的是
$('td')
,这意味着文档中的所有td标记都可以更改为
tr.find('td')
,还有很多其他方法可以做到这一点。希望它能为你工作

是的,通过这段代码

$('td').css ('background-color', 'green');
您的所有TDs都将是绿色的

要为所需的td添加颜色,您需要将其更改为

$('td',tr).css ('background-color', 'green');

请注意,
$('td,tr)
只是转过身调用
tr.find('td')
。是的,这是一个等价的hanks,这很有效。我不得不删除else语句,我还为
tr td{background color:red;}
设置了默认的红色,重点不是它是等价的,而是当您调用
$('td',tr)
时,jQuery所做的是找出您所做的事情,然后它真正地调用
tr.find('td'))
并返回结果。@在这种情况下,您需要根据任何id将每个td与json中的行相关联。并搜索它-如果存在,只需更改颜色而不添加到DOM。Re
tr.append(“+data[i].client+”):强烈建议在创建元素时不要使用原始值到HTML字符串的字符串连接;假设
data[i].client
有一个
&
感谢指针,我将更改它。