JQuery:删除重复的元素?

JQuery:删除重复的元素?

假设我有一个重复值的链接列表如下:


<a href="#">Book</a>

<a href="#">Magazine</a>

<a href="#">Book</a>

<a href="#">Book</a>

<a href="#">DVD</a>

<a href="#">DVD</a>

<a href="#">DVD</a>

<a href="#">Book</a>

我将如何使用JQuery删除重复项,并留下以下内容,例如:


<a href="#">Book</a>

<a href="#">Magazine</a>

<a href="#">DVD</a>

基本上我正在寻找一种方法来删除找到的任何重复值并显示每个链接1。


白衣非少年
浏览 723回答 3
3回答

慕桂英546537

var&nbsp;seen&nbsp;=&nbsp;{};$('a').each(function()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;txt&nbsp;=&nbsp;$(this).text(); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(seen[txt]) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(this).remove(); &nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;seen[txt]&nbsp;=&nbsp;true;});说明:seen是一个将任何以前看到的文本映射到的对象true。它作为一个包含所有以前看到的文本的集合。该行if (seen[txt])检查文本是否在集合中。如果是这样,我们之前已经看过这个文本,所以我们删除了链接。否则,这是我们第一次看到的链接文本。我们将其添加到集合中,以便删除具有相同文本的任何其他链接。表示集合的另一种方法是使用包含所有值的数组。但是,这会使速度慢得多,因为要查看数值是否在我们每次扫描整个数组所需的数组中。seen[txt]相比之下,查找对象中的键是非常快的。

紫衣仙女

//&nbsp;use&nbsp;an&nbsp;object&nbsp;as&nbsp;mapvar&nbsp;map&nbsp;=&nbsp;{};$("a").each(function(){ &nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;value&nbsp;=&nbsp;$(this).text(); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(map[value]&nbsp;==&nbsp;null){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map[value]&nbsp;=&nbsp;true; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(this).remove(); &nbsp;&nbsp;&nbsp;&nbsp;}});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JQuery