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 關注
- 756 瀏覽
添加回答
舉報
0/150
提交
取消
