如果数字大于" x"则更改CSS

时间:2014-09-28 17:26:30

标签: javascript jquery html css

不确定这是否可行,或者我可能会采用错误的方式。我正在构建来自我的雇主的实时数据流,并且如果其中包含的数字大于5:00,则需要能够更改特定div的颜色。

因此,数据流的代码如下所示

<tr class="rowColour" style="background: #FFCFCF">
  <td style="text-align: left;width: 25%">Firstname.Lastname</td>
  <td style="width: 40%;">On Call (4:17 mins)</td>  
  <td style="width: 35%">Company 1</td>
</tr>

<tr class="rowColour" style="background: #FFCFCF">
  <td style="text-align: left;width: 25%">Firstname.Lastname</td>
  <td style="width: 40%;">On Call (0:49 mins)</td>  
  <td style="width: 35%">Company 1</td>
</tr>

所以基本上我需要查看括号中包含的内容(例如On call(0:49分钟))。因此,如果变成5分钟或更长时间,我需要颜色为红色。

但我真的不知道如何实现这一目标。使用jQuery包含选择器我能够为每个说“On Call”的人做这个,但是我需要它才能看到大于5分钟的那些。

这是我目前拥有的jQuery:

$(document).ready(function(){
$(".rowColour:contains(On Call)").css("color","red");
});

这可行吗?如果是这样,我该怎么做呢?任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:2)

您必须提取这些数字,并且5:00可以转换为数字500,您可以检查它是否位于过滤器内的上方或下方等。

$(document).ready(function(){
    $(".rowColour").filter(function() {
        var td = $('td:contains(On Call)', this);
        if (td.length === 0) return false;

        var time = td.text().replace(/\D/g, '');

        return time >= 500;

    }).css("color","red");
});

FIDDLE