如何在无限滚动追加后删除具有重复类的元素

时间:2014-06-17 15:22:42

标签: javascript jquery infinite-scroll

我用jQuery实现了一个基于AJAX的无限滚动函数。当无限滚动附加到DOM时,一些产生的新div可能是重复的,因为其他用户向同一页面添加其他注释可能会扰乱mysql排序。

因此,我需要删除因无限滚动追加而添加到页面的任何重复注释。

格式是

 <div class = "comment 1">comment text</div>

所以任何重复都是

 <div class = "comment 12">comment text</div>
 <div class = "comment 12">comment text</div>

基本上,我正在寻找的是一种通过&#34;评论&#34;来循环遍历所有div的方法。在课堂上,删除任何有多个注释编号的div,例如&#34;评论12&#34;在上面的例子中,保留至少一份副本。

我如何做到这一点?非常感谢提前。

2 个答案:

答案 0 :(得分:1)

它不是很漂亮,但是这样的东西?

$('.comment').each(function() {

    var currentclass = $.trim($(this).attr('class').replace('comment', ''));

    if ($('.comment.' + currentclass).length > 1) {
        $(this).remove();
    }

});

这是一个小提琴:http://jsfiddle.net/Niffler/5w33E/

答案 1 :(得分:0)

您可以尝试按类迭代注释并删除已列出的注释类:

  var matches = [];

  $("div[class^='comment']").each(function () {
    var thisClass = this.className;
    if (matches.indexOf(thisClass) > -1) {
      $(this).remove();
    } else {
      matches.push(thisClass);
    }
  });

&#34; ^=&#34;运算符匹配任何以&#39; comment&#39;。

开头的类