在列中的日期之后隐藏表格行

我想摆脱Wordpress并通过亚马逊S3和Cloudfront发布一个漂亮的静态网页。 我现在拥有的唯一“动态”部分(使用wordpress)是一个旅游日期列表。 过去的活动没有显示。

我喜欢这个function,但我认为必须有一种方法可以使用html和jQuery来做到这一点。 不幸的是我对后者一无所知,所以我真的希望有人帮助我找到解决方案。

如果td中的日期早于今天的日期,如何隐藏表格行? <<那个我无法上班,特别是因为我不需要包含很多其他功能。

我需要的是一个表,有一些行,每行有一个包含日期的单元格(欧洲日期格式为DD-MM-YY)。 一旦日期过去,我希望隐藏该行。

Date Other stuff Some more stuff
15-05-2015 Bla Bla Bla Some more bla
11-07-2035 Bla Bla Bla 2 Some more bla 2

因此,在这种情况下,具有内容的第一行将被隐藏,因为它在过去,而第二行将在远期将来可见。 希望有一些简单的解决方案!

首先,您需要创建比较日期的函数:

  function compareDate(dateParam) { var CurrentDate = new Date(); var arrDate = dateParam.split("-"); var SelectedDate = new Date( arrDate [2], arrDate [1] - 1, arrDate [0] ); if(CurrentDate > SelectedDate){ return true; //<-- means current date is greater } else { return false; //<-- means current date is smaller or equal } } 

然后,检查除标题1之外的每个TR

 $(function(){ $('tr').not(':first').each(function(){ //<-- take all rows except header if(compareDate($(this).find('td:first').text().trim())) { $(this).hide(); } }); }); 

它并不难,但它很长,我试图为你解释一部分,

第一行是标题,所以我们不想操纵它,将类添加到可能需要隐藏的行中.datacheck

然后我们尝试使用一些很酷的东西,我们将检查每一行,然后获取日期列并将其转换为可比较的日期格式,然后决定显示或隐藏,

这是我的想法

 $('table tr.datacheck').each(function(){ var now = new Date().getTime(); var text_time = $(this).find('td').first().text(); var time = text_time.split('-'); // separate day,month,year var day = time[0]; var month = time[1]; var year = time[2]; var row_date = new Date(); row_date.setFullYear(year, month, day); // now we have both time, now time and row time , we can compare if (now > row_date.getTime() ) { // if the row date is less that now date $(this).hide(); // hide the row here } }); 

我以不整齐的模式编写了这段代码,以便于理解。 希望能帮助到你

这是一个简短的代码

 $('table tr.datacheck').each(function(){ var now = new Date().getTime(); var text = $(this).find('td:first').text().split('-'); var row_date = new Date(); row_date.setFullYear(time[0], time[1], time[2]); // now we have both time, now time and row time , we can compare if (now > row_date.getTime() ) { // if the row date is less that now date $(this).hide(); // hide the row here } });