2012-05-11 285 views
1

如果dom生成重複相同的元素會怎麼樣?例如:jQuery刪除重複元素

<ul id="listitem"> 
    <li>item1</li> 
    </ul> 

    <ul id="listitem"> 
    <li>item1</li> 
    </ul> 

    <ul id="listitem"> 
    <li>item1</li> 
    </ul> 

... 

那麼這是可能的保留其中一個和刪除額外的兩個?

+1

ID應該是唯一的,以防萬一如果通過外部代碼呈現並且您沒有控制權,那麼您唯一的選擇是迭代所有ul並刪除ul重複。 –

+0

具有相同「id」的元素不是有效的HTML。 – jmoerdyk

回答

7

ID應該是唯一的,如果這是通過外部代碼呈現並且您無法控制它,那麼您唯一的選擇是迭代所有ul並刪除重複的ul。

var duplicateChk = {}; 

$('ul[id]').each (function() { 
    if (duplicateChk.hasOwnProperty(this.id)) { 
     $(this).remove(); 
    } else { 
     duplicateChk[this.id] = 'true'; 
    } 
}); 
+0

這是完美的 – test

3

HTML中的id字段必須是唯一的。如果你曾經有過一個應用於多個元素的情況,那麼class更合適。

<ul class="listitem"> 
    <li>item1</li> 
</ul> 

假設你切換到了類,那麼你可以使用下面的代碼刪除所有,但第一次出現

$('.listitem:gt(0)').remove(); 

選擇的:gt(0)部分將導致其必須匹配的項目大於0的索引(除第一個元素外的任何東西)