我正在使用Infinite Scroll插件(用于Wordpress)在用户滚动到底部时将新帖子加载到页面上。问题是这已经加载了重复的帖子,因为排序变化非常快(由于流行度),帖子最终在不同的页面上。
当插件抓取下一页时,有时最初在FIRST页面上的产品已被排序到SECOND页面。所以我最终得到了重复。
我计划等待脚本加载下一页内容,然后遍历所有帖子标题并找到重复项。然后我会删除每个帖子的第二个实例。
我注意到Infinite Scroll在标有&#34的设置中有一个窗口;在内容加载/回调后运行"所以我想我可以在该字段中输入一个函数来调用。
removeDuplicates();

然后我在页脚中输入了这样的内容:
function removeDuplicates(){
var titleList = [];
$('.title').each(function(i, obj) {
/* The titles are in <h1> tags, I cycle through them,
if it's the first time seeing the title I add it to titleList.
If it's already in the array I hide the parent. */
});
});
&#13;
我一直在&#34;未定义的功能&#34;与.each有关,看起来它与范围有关,但我不确定发生了什么。
是否有更简单的方法来触发删除重复项的功能?我至少走在正确的轨道上了吗?
感谢您提供的任何见解!
答案 0 :(得分:0)
似乎jquery没有被加载。即使您使用不返回元素的选择器,它仍应具有.each()
方法。
尝试使用vanillaJS而不是jquery。
var titleNodeList = document.querySelectorAll('.title'); // get elements
var titleElArray = Array.prototype.slice(titleNodeList); // convert to array
titleElArray.forEach(function(el){...}); // iterate