jquery - 选择具有相同类的多个元素,然后按id过滤

时间:2012-05-29 14:02:56

标签: jquery

.post是具有唯一ID的元素类,例如“c1”,“c14”等(表示页面上的帖子数)。

以下代码将成为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”。我无法统计这些元素,我需要在每次调用时重新计算它,因为当我试图保持计数时它被搞砸了。

3 个答案:

答案 0 :(得分:4)

使用索引选择器过滤器非常简单:

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

答案 1 :(得分:2)

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

$elements.fadeOut(1000);

Live DEMO

答案 2 :(得分:1)

您可以使用.filter()

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