jQuery基于文本更改表格单元格的文本颜色
我有一个包含状态数据列的表。 两个示例状态将是“拒绝”和“已付”
我想要做的是将“拒绝”的文本颜色更改为红色,并将“付费”的颜色更改为绿色。
对于具有此状态的单元格,我向td
添加了一个类,如下所示:
<td class="status">
@Html.DisplayFor(modelItem => item.Status)
</td>
所以我可以很容易地识别它。
我发现我可以使用以下命令将所有状态的颜色更改为红色:
$('.status').css("color", "red");
我也可以通过以下方式获得第一个的价值:
alert($('.status').html());
不过,我不确定如何根据文本设置状态颜色。 即将所有“已接收”设置为红色,并将所有“已付”设置为绿色。
有人能告诉我如何实现这一目标吗?
我甚至按照正确的方法使用jQuery或有更好的CSS方式?
这将工作:
$('.status:contains("Paid")').css('color', 'red');
$('.status:contains("Received")').css('color', 'green');
http://jsfiddle.net/MMEhc/
我也可以通过...获得第一个的价值
通过那个选择器,你可以得到一个集 并且您在集合中的第一个项目上执行.html()
。
您可以遍历所有status
单元以检查状态并更改颜色。
$('.status').each(function() {
// check text and do styling
});
然而这不是优选的(因为它不是必需的)。 这会伤害到性能。
你也可以使用.contains()
作为这个(http://api.jquery.com/contains-selector/)。
也并非真的需要。 我认为不是性能最好的选择。
所以最好的选择(恕我直言)是:
你为什么不给单元添加两个额外的类: status-received
和status-paid
因为你已经知道了单元在渲染时的状态。
所以你可以这样做:
$('.status-received').css("color", "red");
$('.status-paid').css("color", "red");
或者完全放弃jQuery(因为我们不再需要它了(除非我们要动态地改变单元格)),并且只是样式这两个类使用CSS。
如果您要从数据库打印表格,只需根据结果将类别分配给td
。
然后为该类分配背景颜色。
td.paid {
display:block;
background-color:red;
}
td.recieved {
display:block;
background-color:green;
}
为什么你首先需要为此使用JavaScript?
如果我没有弄错,上面的代码是jQuery,所以如果你使用它,不要忘记添加Lib。
链接地址: http://www.djcxy.com/p/31023.html