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

jquery filter with two different number values

本文关键字:两个 过滤器 jquery      更新时间:2023-09-26

我编写了这个脚本,它过滤了一个包含被视为字符串的数字的表。我使用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>

jsFiddle Demo

如果要将筛选器应用于td的两个类,请尝试同时选择这两个类。在筛选器内部,提供一个或子句来区分它们。一旦集合好了,你就可以将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>

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

$(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的回答同样有效。