2016-01-23 29 views
0

例如,我有一個表格,其ID爲tbBookList,對於每一行(<tr>),第四列(<td>)顯示日期。我想在今年之前刪除所有包含Date的行(如2016);日期格式爲yyyy-MM-dd,如2016-01-24。可以jQuery選擇器選擇與子節點匹配一些條件的所有元素?

我谷歌它,但我發現我很難形容我的問題。

我知道的最快捷的方法是我可以選擇$("#tbBookList>tr")的所有行,然後我可以循環它。不過,我想知道是否有更好的方法,如使用jQuery選擇器來做到這一點。

+0

我認爲在javascript日期比較請看看moment.js –

+0

我想你會很難根據單元格的日期內容來選擇表格行。你最好的選擇是循環遍歷行,並在JavaScript中執行邏輯。選擇器是強大的,但不是真正意義上的這種條件邏輯。 – user1777136

回答

1

你可以用filter()

$('#tbBookList tr').filter(function() { 
    var cell = $(this).find('td').eq(3); 
    var date = cell.text(); 
    var year = date.split('-').shift(); 

    return year < 2016; 
}).remove(); 
+0

這確實是很簡單的代碼:) –

+1

@ A.Wolff - 謝謝,試圖讓它變得冗長易讀 – adeneo

+0

感謝您的明確回答。但是,它似乎有一個棘手的問題。爲了選擇第四列,我認爲它使用'$(this).find('td')。eq(3)' – Roy

0

無論你做了什麼,所有行都必須發生循環。

這樣的事情我會用filter()做循環而不是each但是這是個人喜好

$("#tbBookList>tr").filter(function(){ 
     var date = $(this).find('td').eq(2).text(); 
     return SomeTestOfDateValue // boolean 
}).remove(); 
相關問題