1

.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”。我无法计算元素,我需要在每次调用时重新计算它,因为当我试图保持计数时它搞砸了。

4

3 回答 3

4

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

$(".post:gt(4)").remove();
于 2012-05-29T14:07:22.650 回答
2
var $elements = $('.post').filter(function(){
    return parseInt(this.id.substring(1)) <= 1;
});

$elements.fadeOut(1000);

现场演示

于 2012-05-29T14:05:56.413 回答
1

你可以使用.filter()

$('.post').filter(function(){
    return parseInt(this.id.substring(1),10) < 5;
}).fadeOut(1000);
于 2012-05-29T14:07:27.400 回答