访问对于给定特定​​和改变HTML

问题描述:

喜thanx的帮助我刚才的问题......它帮助我很多...... 但是现在我面临的另一问题, 我能刷新我的“表”为每5秒(这里是我的代码)访问对于给定<tr>特定​​和改变HTML

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> 

渲染成表,但现在我需要改变特定SiteS的颜色tatus根据不同的值(例如说,如果该网站的状态是“低票价”的数据库中,我想改变这种状况particualar 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"); 
    } 
} 

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

+0

你是否正在考虑:nth-​​child()伪选择器只支持ie 9以上? – Faust 2012-08-03 05:57:32

+0

@Faust - 对我来说看起来像jQuery。使用jQuery,Sizzle会照顾不支持CSS3的旧浏览器。 – gilly3 2012-08-03 15:14:08

+0

啊,是的,你是对的。没有问题:nth-​​child()作为jQuery选择器。 – Faust 2012-08-03 15:16:10

我相信它应该是

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

如果你想突出显示所有低级行看到这个jsFiddle

编辑

,你可以简单地使用

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

here

+0

julien: - 它的工作,但ts添加类(LowTicket)到我的整个sitestatus列,但不只是为“低票”...你给我我在BT之前实现了我需要改变该特定sitestatus的HTML ... 。 – user1553604 2012-08-03 05:58:28

+0

它应该不是你'data1'的值不正确,看我的编辑是否更有帮助 – 2012-08-03 06:03:31

我不知道你想做什么,但我想你想改变第三列为“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 
    } 
}); 

希望这有助于你。