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刪除重復項,并留下以下內(nèi)容,例如:<a href="#">Book</a><a href="#">Magazine</a><a href="#">DVD</a>基本上我正在尋找一種方法來刪除找到的任何重復值并顯示每個鏈接1。
3 回答

慕桂英546537
TA貢獻1848條經(jīng)驗 獲得超10個贊
var seen = {};$('a').each(function() { var txt = $(this).text(); if (seen[txt]) $(this).remove(); else seen[txt] = true;});
說明:
seen
是一個將任何以前看到的文本映射到的對象true
。它作為一個包含所有以前看到的文本的集合。該行if (seen[txt])
檢查文本是否在集合中。如果是這樣,我們之前已經(jīng)看過這個文本,所以我們刪除了鏈接。否則,這是我們第一次看到的鏈接文本。我們將其添加到集合中,以便刪除具有相同文本的任何其他鏈接。
表示集合的另一種方法是使用包含所有值的數(shù)組。但是,這會使速度慢得多,因為要查看數(shù)值是否在我們每次掃描整個數(shù)組所需的數(shù)組中。seen[txt]
相比之下,查找對象中的鍵是非??斓?。

紫衣仙女
TA貢獻1839條經(jīng)驗 獲得超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 關(guān)注
- 746 瀏覽
添加回答
舉報
0/150
提交
取消