如果列包含特定值,则更改表格行的颜色

Posted

技术标签:

【中文标题】如果列包含特定值,则更改表格行的颜色【英文标题】:Change colors of table row if column contains certain value 【发布时间】:2012-08-12 01:35:37 【问题描述】:

我有一个看起来像这样的表:

<asp:Repeater ID="myRepeater" runat="server">
    <div id="divTable" class="divTable">
    <table id="myTable">
        <thead>
        <tr>
            <td>A</td>
        </tr>
        <tr>
            <td>B</td>
        </tr>
        <tr>
            <td>C</td>
        </tr>
        <tr>
            <td>D</td>
        </tr>                        
    </thead>
    <tbody id="myContent">
        <tr>
            <td>Some Text</td>
        </tr>
        <tr>
            <td>Some Text</td>
        </tr>
        <tr>
            <td>Some Text</td>
        </tr>
        <tr>
            <td id="findMe">
                <%#Eval("IsFlagged")%>
            </td>
        </tr>                            
    </tbody>
    </asp:Repeater>
    </table>
    </div>

现在,这就是我想要做的。如果 返回任何东西,我想将表格行中的所有单元格设置为某种颜色。

我一直在阅读有关 .contains() 的内容,但我没有找到一个简单地询问“如果不为 null,则将 .css 样式应用于表格行的其余单元格”的示例。

【问题讨论】:

在设置tr 颜色之前,您将在哪个时刻验证您的变量? jQuery 部分非常简单。 我继续给“特殊” 一个 ID 为“findMe”。现在,我想选择它,然后将之前的“Some Text” 换成不同的颜色。 【参考方案1】:

我在 jsfiddle 中整理了一个例子:http://jsfiddle.net/aMR5r/

编辑:您的编辑使代码更简单一些,但原理相同。

$(function()
    var isFlagged = $('#findMe').text();
    if(isFlagged.length > 0)
    
        $('#findMe').parent().addClass('yellow');
    
);

http://jsfiddle.net/aMR5r/1/

【讨论】:

如果只有一个具有特定 ID 的单元格,如#findMe,您的答案适用。但是如果我们需要对所有行或每个单元格实现呢?【参考方案2】:

首先,尝试为特定的 td 指定一个类或其他东西,以便您可以定位它。然后你可以检查 $('td.yourclassname').html(); 的长度;

【讨论】:

【参考方案3】:

如果您使用的是 VB.Net,那么您可以使用此代码..

<tr style="background-color:<%# IIF(IsDBNull(Eval("IsFlagged"),"none","yellow") %>">

您也可以将此逻辑应用于 TD。

【讨论】:

以上是关于如果列包含特定值,则更改表格行的颜色的主要内容,如果未能解决你的问题,请参考以下文章

如果类包含值,则更改背景颜色

如何更改具有特定列值的 JTable 整行的颜色

每 10 秒更改特定行的颜色

ASP.NET Razor HTML - 根据值更改表格行的背景颜色

如果单元格中的计算值发生变化,则更改单元格颜色

根据行值更改整行的颜色