1

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

我为提要设置了 display:none,因为我只想显示与“索引”匹配的提要。我不明白为什么 var 没有“显示”

4

1 回答 1

1

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

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

以上仅返回文本:

男人DOOD娜的Val liftschacht RotterdamBulgarije geeft照片vrij面包车tweede verdachte bomaanslagStraat ontruimd BIJ格罗特品牌OverdinkelAsiel阿桑奇verandert niets VOOR LondenMoordenaar honkballer Halman运维杰voetenGrote品牌Overdinkel'Broer vermoorde honkballer ontoerekeningsvatbaar'Boete VOOR RET OM studentenreisgegevensDode BIJ崩溃vliegtuigje BiddinghuizenMinder tienermoeders丹ooit在荷兰

没有什么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 ,
Ecuador verleent Wikileaks-baas Julian Assange politiek asiel true

调用时,unique[itemText]我们要求unique对象为我们提供名称与 in 匹配的属性的值itemText

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

现在去掉了源中的重复项,我们使容器再次可见。

于 2012-08-16T12:48:28.657 回答