小编典典

使用jQuery根据td值更改行颜色

jsp

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

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

`

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

这是到目前为止我所做的事情的一个小提琴

希望能有所帮助。


阅读 1077

收藏
2020-06-08

共1个答案

小编典典

更改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中,使其更易于操作。我还调整了偶数或奇数行的红色。

2020-06-08