1

こんにちは私の前の質問の助けに感謝します...それは私を大いに助けました...しかし今私は別の問題に直面しています、私は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の色を変更する必要があります(たとえば、データベースのサイトステータスが「LowTickets」の場合、その特定の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");
    } 
}

しかし、コードは機能していません。どうすればその問題を解決できますか?

4

2 に答える 2

0

何をしたいのかわかりませんが、3列目の行を「LowTicket」クラス名に変更したいと思います。

もしそれが、

データがロードされたときに javascript を 1 回呼び出すことができます。

$(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 に答える