我有通过回调加载数据的脚本,例如:
for(i = 0; i < allposts.length; i++){
....
if ((i >= 0) && (i < 3)) {
a += '<li><a href="'+link+'">'+post-title+'</a></li>';
}
}
list = a;
document.getElementById('portfolio-list').innerHTML += list;
当for循环结束时,它会追加3个帖子。这意味着,我们的每个循环都是这样的:
<li><a href="link1">title1</a></li>
<li><a href="link2">title2</a></li>
<li><a href="link3">title3</a></li>
对于 2 个循环(使用 += list
),例如我有:
<li><a href="link1">title1</a></li>
<li><a href="link2">title2</a></li>
<li><a href="link3">title3</a></li>
<li><a href="link2">title2</a></li>
<li><a href="link4">title4</a></li>
<li><a href="link5">title4</a></li>
您可以看到:link2 已重复
。我希望捕获每个循环并在重复时中断。
这意味着我的结果如下:
<li><a href="link1">title1</a></li>
<li><a href="link2">title2</a></li>
<li><a href="link3">title3</a></li>
<li><a href="link4">title4</a></li>
<li><a href="link5">title5</a></li>
如何使用 Javascript 做到这一点?
最佳答案
这是我之前在评论中想到的一个模板:
var shownLinks = [];
for(i = 0; i < allposts.length; i++){
....
if ((i >= 0) && (i < 3)) {
// Only show a link, if it wasn't before
if(shownLinks.indexOf(link) == -1) {
a += '<li><a href="'+link+'">'+post-title+'</a></li>';
// Add the link to the array
shownLinks.push(link);
}
}
}
list = a;
document.getElementById('portfolio-list').innerHTML += list;
关于javascript - 跳过从循环 append 的相同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20322827/