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

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

紫衣仙女
TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
// 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)注
- 755 瀏覽
添加回答
舉報(bào)
0/150
提交
取消