javascript - 跳过从循环 append 的相同元素

标签 javascript html loops append

我有通过回调加载数据的脚本,例如:

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/

相关文章:

python - 在列名内循环

javascript - 将警报功能更改为在 JavaScript 表单验证上显示 Div?

javascript - 光标获取单选组的列索引

javascript - jQueryeach 和 find 调用不适用于 html

javascript - 如何修复页面上的商品推送到购物车的循环?

PHP函数从两个表中进行两次循环

javascript - 工具提示的 CSS 定位

javascript - 密码正则表达式

forms - 没有属性的 HTML 表单标签 - 有什么理由不这样做?

javascript - 如何将工具提示放在 div 下居中?