如果项目不匹配,则显示变量

Show var if item doesn't match

本文关键字:显示 变量 项目 不匹配 如果      更新时间:2023-09-26

我正在使用Feedburner来显示feed。有时源具有相同的文本。我想"隐藏"某个提要的任何"重复项"。我已经将feedburner脚本包装在一个div"unique"中,如下所示:jsFiddle

我已经为提要设置了显示:无,因为我只想显示与"索引"匹配的提要。我不明白为什么 var 没有"显示"

我认为.text()查询不正确。

var a = $('.unique a').text();

上面只返回文本:

Man dood na val in liftschacht RotterdamBulgarije geeft foto vrij van tweede verdachte bomaanslagStraat ontruimd bij grote brand OverdinkelAsiel Assange verandert niets voor LondenMoordenaar honkballer Halman op vrije voetenGrote brand in Overdinkel'Broer vermoorde honkballer ontoerekeningsvatbaar'Boete voor RET om studentenreisgegevensDode bij crash vliegtuigje BiddinghuizenMinder Tienermoeders dan ooit in Nederland

a中没有任何内容可以迭代。

我想你可能想做:

var a = $('.unique a');

这将返回您现在可以迭代的项目列表。

我可以看到的下一个问题是,您的过滤器方法只是遍历 12 个项目的数组,并且仍然返回相同的 12 个项目,索引处的项目将始终与当前项目匹配。

试试这个解决方案:

$(document).ready(function() {
    var $a = $('.unique a');
    var unique = {};
    for (i = 0; i < $a.length; i++) {
        var itemText = $($a[i]).text();
        if (unique[itemText]) {
            $($a[i]).remove();
        }
        else {
            unique[itemText] = true;
        }
    };
    $('.unique').show();
});

查看演示

我声明unique为对象。此对象将保留我们已经处理的每个锚文本值的记录,方法是将itemtext添加为分配 of true 的属性。这是可能的,因为JavaScript的动态性质允许您动态地为对象分配过程。

Boete voor RET om studentenreisgegevens true
Bulgarije geeft afbeelding vrij van verdachte aanslag true
厄瓜多尔 verleent 维基解密-baas 朱利安·阿桑奇 政治家 阿西尔

调用unique[itemText]时,我们要求unique对象为我们提供属性的值,其名称与itemText中的内容相匹配。

如果属性存在,则返回值true,因为这是我们分配给属性的值。我们现在将从源中删除该值,因为我们已经处理了它。
如果未找到该属性,则返回undefined,我们将属性动态添加到unique对象,为其分配 true 的值。

现在去除了

源中的重复项,我们使容器再次可见。