1

我编写了这个脚本来过滤一个包含被视为字符串的数字的表。我使用 parseInt() 将字符串转换为数字。请参阅下面的代码。然后我被要求也将其应用于另一个单元格,该单元格包含一个带有“1.00”或“0.00”的字符串,并且有一个名为目标的类。我知道我可以复制下面的代码并更改解析以查找 number == 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>
4

2 回答 2

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>
于 2013-08-20T23:20:31.770 回答
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 的回答也有效。

于 2013-08-20T23:30:07.050 回答