2012-05-29 100 views
0

.post是也具有唯一標識(例如「c1」,「c14」等(表示頁面上的帖子數))的元素的類。jquery - 選擇具有相同類別的多個元素,然後按ID篩選

下面的代碼將成爲ajax調用的一部分,它會定期檢索新帖子,同時檢查頁面上當前的帖子數量。如果金額超過5,舊帖子將被刪除。

要移除的帖子將具有最小的ID。我怎麼能選擇他們?或者是否會有更好的方法選擇較舊的郵件(它們位於底部,與YouTube類似)。

var postcount = $(".post").length; 

while(postcount > 5){ 
$("#c" + divtoremove).fadeOut(1000); 
} 

<div class="post" id="c6">Post 6</div> 
<div class="post" id="c5">Post 5</div> 
<div class="post" id="c4">Post 4</div> 
<div class="post" id="c3">Post 3</div> 
<div class="post" id="c2">Post 2</div> 
<div class="post" id="c1">Post 1</div> 

在這個例子中,應該刪除「c1」。我無法保持元素的數量,因此當我嘗試保持計數時,我需要在每次調用時重新計算它,因爲它變得混亂。

回答

4

與索引選擇過濾器很簡單:

$(".post:gt(4)").remove(); 
+0

用最簡單的方法去。 – domino

2
var $elements = $('.post').filter(function(){ 
    return parseInt(this.id.substring(1)) <= 1; 
}); 

$elements.fadeOut(1000); 

Live DEMO

1

你可以使用.filter()

$('.post').filter(function(){ 
    return parseInt(this.id.substring(1),10) < 5; 
}).fadeOut(1000); 
相關問題