2015-07-11 42 views
0

好吧,我有一個信息表。此表格的內容是列名和日期(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 
     } 
    } 
}); 
}); 
+0

您必須使用**查詢數據庫,其中**條件日期,例如:select * from mytable where date = [today]。 –

+0

如何從數據庫中獲取數據....以及表結構是什麼? –

+0

該表如何填充?如果數據從數據庫中被剔除,如果允許的話,在服務器端應用限制要好得多。經驗法則不是要相信客戶端。如果您將數據傳遞給客戶端並嘗試隱藏其中的一部分,智能客戶端**仍然可以看到**這些數據。所以如果你想限制你的客戶訪問某些數據,不要在第一時間把數據放在她手中。 – Alp

回答

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'); 
     }; 
    }); 
}); 

定義了今天的數據。該函數將循環遍歷每個TR中的第二個TD,從裏面的文本中定義一個日期(使用正則表達式匹配來分隔日期分量),將其與當天的日期進行比較,如果它們相同,則會將hidden類添加到整排。

JSFiddle

希望有所幫助。

編輯:原諒我,我沒有正確閱讀這個問題!看來你想隱藏那些沒有今天的日子。在這種情況下,請將if塊中的==更改爲!=。這將做相反的事情。 JSFiddle 2

+0

謝謝,但這只是突出顯示行數據,我需要完全隱藏數據,只顯示數據與今天的日期。 – tom

+0

我這樣做,所以你可以選擇如何隱藏數據。只需將'visibility:hidden'添加到.hidden風格... – JBux

+0

Ahhh對不起。完善。這會自動然後每天更改日期嗎? – tom

相關問題