1

嗨thanx对我上一个问题的帮助......它帮助了我很多......但现在我面临另一个问题,我能够每5秒刷新一次“表格”(这是我的代码)

function GetStatus() {
    $.ajax({
        url: "/Site/StatusReport/",
        type: "GET",
        data: '',
        contentType: "application/json",
        success: function (result) {
            // var type = $.parseJSON(result);
            var row = "";

            $(result).each(function () {
                // row += "<tr><td>" + this.SiteId + "</td></tr></br>";
                // row += "<tr><td>" + this.SiteName + "</td></tr>";
                // row += "<tr><td>" + this.SiteStatus + "</td></tr>";  
                changeStatus(this.SiteId, this.SiteName, this.SiteStatus);
            });
            // $("#sometable").html(row);
        }
    });
}

并使用以下代码将 json 数据呈现为表

<table id="sometable" > 
    <tr> 
        <th></th>
        <th>SiteName</th> 
        <th>SiteStatus</th> 
        <th></th> 
    </tr> 

    <%foreach (var item in (List<MvcList.Models.CenterStatus>)ViewData["table"])
      { %>
        <tr id ="<%= item.SiteId%>"> 
            <td>
               <img  src='../../Content/<%= item.SiteName%>.png'/>
            </td> 
            <td> 
                <%= item.SiteName%>
            </td> 
            <td> 
                <%= item.SiteStatus %>
            </td>          
        </tr> 
    <%} %>
</table>

但是现在我需要根据其值更改特定 SiteStatus 的颜色(例如,如果数据库中的站点状态为“Low Tickets”,我想更改该特定站点状态的颜色......我已经用这个那

function changeStatus(data1, data2, data3) {
    if (data3 = "Low Tickets") {
        // $("#sometable[id='" + data1 + "']tr td:nth-child(2)").addClass("LowTicket");
        // $("#sometable tr:nth-child(3)").addClass("LowTicket");
        // $("#sometable tr:nth-child(4)>td:nth-child(3)").addClass("LowTicket");
        $('table #sometable tr:nth-child(' + data1 + ')>td:nth-child(3)').addClass("LowTicket");
    } 
}

但是代码不起作用。我该如何解决这个问题?

4

2 回答 2

0

我不知道您想做什么,但我认为您想将第三列的行更改为“LowTicket”类名;

如果是,

您可以在加载数据时调用一次javascript,通过替换

$(result).each(function () {
            //                        row += "<tr><td>" + this.SiteId + "</td></tr></br>";
            //                        row += "<tr><td>" + this.SiteName + "</td></tr>";
            // row += "<tr><td>" + this.SiteStatus + "</td></tr>";  
            changeStatus(this.SiteId, this.SiteName, this.SiteStatus);

        });

$('#sometable tr>td:nth-child(3)').each(function(){
    if ($(this).html() == "Low Tickets"){
        $(this).parent().addClass("LowTicket"); //For change class of parent rows
        // Or
        // $(this).addClass("LowTicket"); //For change class only status column
    }
});

希望这对您有所帮助。

于 2012-08-03T05:56:06.767 回答
0

我相信应该是

function changeStatus(data1, data2, data3) {
  if (data3 = "Low Tickets") {
    $('#sometable tr#' + data1 + '>td:nth-child(3)').addClass("LowTicket");
  } 
}

看到这个jsFiddle

编辑

如果您想突出显示所有 LowLevel 行,您可以简单地使用

$("tr td:contains('LowTicket')").parent().addClass("LowTicket");

这里

于 2012-08-03T05:49:30.620 回答