使用Jquery基于td值更改行颜色

时间:2012-11-25 02:00:25

标签: jquery html css jsp

我有一个从数据库填充的表。我有2个条件需要申请

  1. 将斑马条纹应用于表格(已完成)
  2. 将行颜色更改为基于红色的td值
  3. `

    <tr class="alt">
        <td class="status"><input type="text" value="One"></td>
        <td class>Received</td>
    </tr>
    <tr class="alt">
        <td class="status"><input type="text" value="One"></td>
        <td class>Received</td>
    </tr>
    <tr class="alt">
        <td class="status"><input type="text" value="Zero"></td>
        <td class>Received</td>
    </tr>
    <tr class="alt">
        <td class="status"><input type="text" value="One"></td>
        <td class>Received</td>
    </tr>
    <tr class="alt">
        <td class="status"><input type="text" value="Zero"></td>
        <td class>Received</td>
    </tr>
    

    `

    $(document).ready(function()
    {
    $("tr.alt:even").css("background-color", "#f0f8ff");
    $("tr.alt:odd").css("background-color", "#fcfceb");
    });
    
    $(document).ready(function() {
       $('.status.val():contains("Zero")').closest('tr.alt').css('background-color', '#cd0000');
    });
    

    我想根据输入值

    更改行颜色

    <td class="status"><input type="text" value="One"></td>

    Here is a fiddle of what I've done so far

    非常感谢帮助。

2 个答案:

答案 0 :(得分:8)

试试这个,

<强> Live Demo

$('td.status[value=Zero]').css('background-color', 'red');

修改:根据评论和OP中的更改

要更改整个row with the given criteria of td,您可以这样做。

Live Demo

$('td.status[value=Zero]').closest('tr').css('background-color', 'red');

答案 1 :(得分:3)

要更改tr(你使用的是v 1.6.4而不是最新的,所以我们需要bind而不是on)

$(document).ready(function(){

    $("tr.alt:even").addClass("even");
    $("tr.alt:odd").addClass("odd");
    $('td.status input').bind('change keyup', function(){
        var tr=$(this).closest('tr');

        if ($(this).val()=='Zero') tr.addClass('zero');       
        else tr.removeClass('zero');

    }).trigger('change'); // the trigger is to run this action on load
});
​
tr.odd
{
    background-color:#fcfceb;
}

tr.even
{
    background-color:#f0f8ff;
}

tr.odd.zero
{
    background-color:#ff0000;
}
tr.even.zero
{
    background-color:#cc0000;
}

你的HTML有点混乱。您缺少引号,<td class>无效。

http://jsfiddle.net/MMEhc/158/

编辑:更新版本以适应手动更改的值,而不仅仅是输出的值(正如我所理解的那样)

http://jsfiddle.net/MMEhc/159/

您会看到我将背景颜色移出HTML并进入CSS,以便更容易操作。我也调整了红色的偶数行或奇数行。