访问对于给定特定和改变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");
}
}
但代码不起作用。我该如何解决这个问题?
答
我相信它应该是
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
}
});
希望这有助于你。
喜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");
}
}
但代码不起作用。我该如何解决这个问题?
我相信它应该是
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
julien: - 它的工作,但ts添加类(LowTicket)到我的整个sitestatus列,但不只是为“低票”...你给我我在BT之前实现了我需要改变该特定sitestatus的HTML ... 。 – user1553604 2012-08-03 05:58:28
它应该不是你'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
}
});
希望这有助于你。
你是否正在考虑:nth-child()伪选择器只支持ie 9以上? – Faust 2012-08-03 05:57:32
@Faust - 对我来说看起来像jQuery。使用jQuery,Sizzle会照顾不支持CSS3的旧浏览器。 – gilly3 2012-08-03 15:14:08
啊,是的,你是对的。没有问题:nth-child()作为jQuery选择器。 – Faust 2012-08-03 15:16:10