1

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

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

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

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

...

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

4

2 回答 2

7

ID 应该是唯一的,以防万一它由外部代码呈现并且您无法控制它,那么您唯一的选择是遍历所有 ul 并删除重复的 ul。

var duplicateChk = {};

$('ul[id]').each (function () {
    if (duplicateChk.hasOwnProperty(this.id)) {
       $(this).remove();
    } else {
       duplicateChk[this.id] = 'true';
    }
});
于 2012-05-11T21:36:49.690 回答
3

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

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

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

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

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

于 2012-05-11T21:40:06.013 回答