2013-12-18 30 views
-2

我有事件清單。我想刪除任何具有重複名稱和日期的活動,但他們可以有不同的位置。我可以使用此線程的代碼變體成功刪除重複項 - JQuery: Remove duplicate elements?但是,我想隱藏第一個重複項目的位置信息,但我似乎無法找到它。這是到目前爲止我的代碼...jQuery:我如何定位第一個重複列表項?

$('li').each(function() { 
    var name = $(this).find('.name').text(); 
    var dates = $(this).find('.dates').text(); 
    var nameAndDates = name + dates; 
    if (seen[nameAndDates]) { 
     $(this).remove(); 
    } 
    else { 
     seen[nameAndDates] = true; 
    } 
}); 

某處在那裏我需要爲目標的第一個重複的項目,並沿的線條添加的東西...

$(this).find('.location').hide(); 

任何想法?

+3

你的問題不明確。什麼不工作? – isherwood

+4

顯示HTML標記。 – Hiral

+0

對不起。這裏是一個JSFiddle,以更好地展示我的意思 - http://jsfiddle.net/dFtLM/ – andrewhoule

回答

0

指望他們和刪除只有先複製

var seen = {}; 

$('li').each(function() { 
    var name = $(this).find('.name').text(); 
    var dates = $(this).find('.dates').text(); 
    var nameAndDates = name + dates; 
    if (nameAndDates in seen && seen[nameAndDates] === 1) { 
     $(this).find('.location').hide(); 
    } 

    seen[nameAndDates] = nameAndDates in seen ? seen[nameAndDates] + 1 : 1; 
}); 
+0

我認爲他的問題是刪除第一個重複項目的'.location'。 –

+0

@FabrícioMatté - 這不會通過在條件中使用OP的代碼來解決嗎?不知道我現在得到它? – adeneo

+0

Fabrico說的是什麼 – andrewhoule

相關問題