jquery过滤器有两个不同的数字值

时间:2013-08-20 22:48:27

标签: javascript jquery

我写了这个脚本,它过滤了一个包含被视为字符串的数字的表。我使用parseInt()将字符串转换为数字。见下面的代码。  然后我被要求将其应用于另一个包含“1.00”或“0.00”字符串的单元格,并且有一个名为goal的类。 我知道我可以复制下面的代码并更改解析以查找数字== 1,但我正在寻找一种更有效的方法来管理它。

<script type="text/javascript">
    $(document).ready(function () {
        $('td.completedPercent').filter(function (index) {
            return parseInt(this.innerHTML, 10) >= 90;
        }).css({ 'color': '#FFF', 'background-color': '#336633' });
    });
</script>

2 个答案:

答案 0 :(得分:1)

jsFiddle Demo

如果要将过滤器应用于td这两个类,请尝试同时选择这两个类,并在过滤器内部提供区分它们的or子句。收集小组后,您可以将css应用于该小组。这里的课也很好。

<script type="text/javascript">
 $(document).ready(function () {
    $('td.completedPercent, td.goal').filter(function () {
     var t = $(this),i = parseInt(t.html(), 10);
     return (t.hasClass("goal") && i == 1) || i >= 90;})
     .css({ 'color': '#FFF', 'background-color': '#336633' });
 });
</script>

答案 1 :(得分:0)

就个人而言,我会这样写:

$(function () {
    $('td').each(function () {
        var content = $(this).text();
        if (($(this).hasClass('completedPercent') && parseInt(content, 10) >= 90) || ($(this).hasClass('goal') && (content === '1.00' || content === '0.00'))) {
            $(this).css({
                'color': '#FFF',
                    'background-color': '#336633'
            });
        }
    });
});

但@ TravisJ的答案也有效。