访问给定的特定内容并更改html

时间:2012-08-03 05:35:28

标签: javascript jquery ajax asp.net-mvc json

嗨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”,我想更改该特定sitestatus的颜色... 我已将此用于此

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");
    } 
}

但代码无效。我该如何解决这个问题?

2 个答案:

答案 0 :(得分: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");

请参阅here

答案 1 :(得分: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
    }
});

希望这对你有所帮助。