Jquery 删除动态创建的div的最后一次出现

Jquery 删除动态创建的div的最后一次出现,jquery,setinterval,event-delegation,Jquery,Setinterval,Event Delegation,我有一个div,我希望能够将子元素添加到顶部,并从底部动态删除子元素。有点像一个rss阅读器。 父div不断填充新的子div。 有一个条件可以测试子项的数量,然后在最后一个子项达到所需的最大子项长度时删除它。 这是在setInterval连续的情况下完成的 setInterval(function(){ var newbox = "<div class='child animated bounceInDown'></div>" $(newbox).pre

我有一个div,我希望能够将子元素添加到顶部,并从底部动态删除子元素。有点像一个rss阅读器。 父div不断填充新的子div。 有一个条件可以测试子项的数量,然后在最后一个子项达到所需的最大子项长度时删除它。 这是在setInterval连续的情况下完成的

setInterval(function(){
    var newbox = "<div class='child  animated bounceInDown'></div>"
    $(newbox).prependTo('#container').hide().slideDown(500);
    var dlength = $('.child').length;
    console.log(dlength);

    if (dlength >=5){
        $(".child:last").fadeOut();
     }
}, 2000);
目前,在我的代码中,我可以通过使用填充有父div的最大所需长度的计数器来删除最后一个子div

问题是它只在第一个间隔中删除最后一个div。 我将计数记录到控制台,并且可以看到计数增量,因此我的条件应该会触发

我的想法是,我的问题是由于没有事件授权。实际上,当我试图删除div时,它不在DOM中。也就是说,我不确定是否需要侦听父级上的事件或附加处理程序。 有什么想法吗

下面是一个小提琴的例子:


问题是您总是淡出DOM中的最后一个元素,而不是最后一个可见元素。就像我说的,你总是在淡化同一个元素

$.child:visible:last.fadeOut;它在JSFIDLE添加的可见选择器中工作

正如Anant所建议的,另一种选择是从DOM中删除元素,而不是将其淡出,这取决于您可能想要实现的目标。如果不需要将元素保留在DOM中,那么删除它可能是一种好的做法

$(".child:visible:last").fadeOut(400,function(){
  $(this).remove();
});

更新了正确的fiddle链接^$'container.child'.eq$'container.child'.length-1.remove;检查一下谢谢!这正是我想要的。阿南特的答案很接近,但没有我试图实现的淡出。