为了账号安全,请及时绑定邮箱和手机立即绑定

JQuery:删除重复的元素?

JQuery:删除重复的元素?

白衣非少年 2019-08-02 16:40:46
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]相比之下,查找对象中的键是非常快的。


查看完整回答
1 反对 回复 2019-08-02
?
紫衣仙女

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();
    }});


查看完整回答
1 反对 回复 2019-08-02
  • Bethink
    Bethink
    和楼上的 写法一样,也是好用的
  • 3 回答
  • 0 关注
  • 722 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信