2012-08-16 42 views
1

我正在使用Feedburner来显示供稿。有时这些Feed具有相同的文本。我想'隐藏'某个Feed的任何“重复”。我已经将feedburner脚本封装在一个div'unique'中,像这样:jsFiddle如果项目不匹配,则显示var

我设置了display:none for这些提要,因为我只想显示与'index'匹配的提要。我不明白为什么var不'显示'

+0

@mplungjan情况并非如此(你是怎样计算出来的......?) – Youss 2012-08-16 12:13:30

+0

我错过了(来自makeArray – mplungjan 2012-08-16 15:23:20

回答

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运维杰voetenGrand品牌在Overdinkel'Broer vermoorde honkballer toerekeningsvatbaar'Boete voor RET om om studentenreisgegevensDode bij crash vliegtuigje BiddinghuizenMinder tie nermoeders 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(); 
}); 

DEMO

我宣布unique为对象。该对象将通过添加itemtext作为分配true的属性来记录我们已处理的每个锚文本值。这可能是由于JavaScript的动态特性,它允许您将proeprties分配给对象。

Boete VOOR RET OM studentenreisgegevens 真正
Bulgarije geeft afbeelding vrij面包车verdachte aanslag 真正
厄瓜多尔verleent维基解密巴斯朱利安·阿桑奇politiek亚薛真正

致电时unique[itemText]我们要求unique对象为我们提供与名称匹配的属性值itemText

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

现在源代码已经被删除了重复项,我们再次使容器可见。

+0

非常感谢你(并且更多地感谢你解释发生了什么事情)+10 – Youss 2012-08-16 13:11:32

+0

你是比欢迎,主要的是你得到它的工作。 – Nope 2012-08-16 13:14:31

相关问题