2012-05-11 253 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的索引(除第一个元素外的任何东西)