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

时间:2012-08-15 18:10:44

标签: javascript jquery asp.net html jquery-selectors

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

<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>

现在,这就是我要做的事情。如果&lt;%#Eval(“IsFlagged”)%&gt;返回任何内容,我想让表格行中的所有单元格都显示某种颜色。

我一直在阅读有关.contains()的内容,但我还没有找到一个例子,只是简单地询问“if not null,将.css样式应用于表格行的其余单元格”。

3 个答案:

答案 0 :(得分:2)

我在jsfiddle中汇总了一个例子:http://jsfiddle.net/aMR5r/

编辑:您的编辑会使代码更简单,但原则相同。

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

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

答案 1 :(得分:1)

首先,尝试将该特定td赋予类或类似内容,以便您可以将其作为目标。然后你可以检查$('td.your classname')的长度.html();

答案 2 :(得分:1)

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

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

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