簡體   English   中英

訪問特定的 <td> 給定的 <tr> 並更改html

[英]Accessing a particular <td> for a given <tr> and changing the html

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

但是代碼不起作用。 我該如何解決這個問題?

我相信應該

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

這里

我不知道您想做什么,但我想您想將第三列的行更改為“ 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
    }
});

希望這對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM