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。
3 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
var seen = {};$('a').each(function() { var txt = $(this).text(); if (seen[txt]) $(this).remove(); else seen[txt] = true;});
说明:
seen
是一个将任何以前看到的文本映射到的对象true
。它作为一个包含所有以前看到的文本的集合。该行if (seen[txt])
检查文本是否在集合中。如果是这样,我们之前已经看过这个文本,所以我们删除了链接。否则,这是我们第一次看到的链接文本。我们将其添加到集合中,以便删除具有相同文本的任何其他链接。
表示集合的另一种方法是使用包含所有值的数组。但是,这会使速度慢得多,因为要查看数值是否在我们每次扫描整个数组所需的数组中。seen[txt]
相比之下,查找对象中的键是非常快的。
紫衣仙女
TA贡献1839条经验 获得超15个赞
// use an object as mapvar map = {};$("a").each(function(){ var value = $(this).text(); if (map[value] == null){ map[value] = true; } else { $(this).remove(); }});
- 3 回答
- 0 关注
- 722 浏览
添加回答
举报
0/150
提交
取消