jQuery删除重复的元素

时间:2012-05-11 21:32:29

标签: jquery

如果dom生成重复的相同元素怎么办?例如:

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

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

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

...

那么这可以保留其中一个并删除额外的两个吗?

2 个答案:

答案 0 :(得分:7)

ID应该是唯一的,如果这是由外部代码呈现并且您无法控制它,那么您唯一的选择是迭代所有ul并删除重复的ul。

var duplicateChk = {};

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

答案 1 :(得分:3)

HTML中的id字段必须是唯一的。如果您遇到应该应用于多个元素的情况,那么class更合适。

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

假设您切换到了课程,那么您可以使用以下代码删除除第一次出现之外的所有内容

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

选择器的:gt(0)部分将使其仅匹配索引大于0的项(除第一个元素之外的所有内容)