仅在今天的日期显示表格数据

时间:2015-07-11 13:48:05

标签: javascript html tablesorter

好的,我有一张信息表。此表的内部是列名称和日期(DD-MM-YYYY)。

我需要将表限制为仅在表格中显示日期等于当前日期的行。因此,如果有10行,并且只有5行在日期列中具有今天的日期,那么只应显示5行。

所以我想知道是否有人知道任何代码只能在今天的日期显示行,并且每天都会自动更改日期。

当前HTML

<table class="tablesorter">
<thead>
    <tr>
        <th>Name</th>
        <th>Release Date</th>
    </tr>
</thead>
<tbody>
    <tr>
        <td>Peter Parker</td>
        <td>11/07/2015</td>
    </tr>
    <tr>
        <td>John Hood</td>
        <td>12/07/2015</td>
    </tr>
    <tr>
        <td>Clark Kent</td>
        <td>12/07/2015</td>
    </tr>
    <tr>
        <td>Bruce Almighty</td>
        <td>13/07/2015</td>
    </tr>
    <tr>
        <td>Bruce Evans</td>
        <td>14/07/2015</td>
    </tr>
</tbody>
</table>

当前Javascript

$(document).ready(function () {
$("table").tablesorter({
    headers: {
        0: {
            sorter: false
        },
        1: {
            sorter: false
        },
        2: {
            sorter: false
        }
    }
});
});

1 个答案:

答案 0 :(得分:0)

我建议在它们出现在HTML之前执行此操作,但以下是如何使用jQuery执行此操作。

$("document").ready(function () {
    var t = new Date();
    $("tr td:nth-child(2)").each(function () {
        var text = $(this).text().match(/(\d+)/g);
        var d = new Date(text[2], text[1] - 1, text[0]);
        if (d.toDateString() == t.toDateString()) {
            var d = new Date(text[2], text[1] - 1, text[0]);
            $(this).closest('tr').addClass('hidden');
        };
    });
});

今天的数据已定义。该函数将循环显示每个TD中的第二个TR,从内部文本定义日期(使用正则表达式匹配来分隔日期组件),将其与今天的日期进行比较,如果它们是同样,它会将hidden类添加到整行。

JSFiddle

希望有所帮助。

编辑:原谅我,我没有正确地阅读这个问题!看来你想要隐藏那些没有今天日期的人。在这种情况下,将if块中的==更改为!=。这将做相反的事情。 JSFiddle 2