如何知道javascript中是否有两个div具有相同的id?

时间:2017-04-16 18:11:42

标签: javascript jquery

有没有办法检查两个div是否具有相同的ID?

我动态创建了div,我发现很难删除ID重复的div,有人可以帮忙吗?

7 个答案:

答案 0 :(得分:2)

我不知道你想在这里实现什么,但通常你不应该有两个具有相同id的元素。但是如果你有一些理由这样做,也许你正在构建一个验证器或类似的东西,你可以做以下几点来计算元素的数量

var count = document.querySelectorAll('#test').length;

console.log(count);

然后你可以循环遍历它们并使用

删除它们
document.querySelectorAll('#test')[1].remove();

答案 1 :(得分:1)

尝试使用:

        $('[id]').each(function () {
            var ids = $('[id=' + this.id + ']');
            if (ids.length > 1 && ids[0] == this) {
                $(ids[1]).remove();
            }
        });

答案 2 :(得分:0)

你必须循环所有元素,因为像getElementById()这样的帮助者在他们不是唯一的时候会很好地工作。

示例,不需要jQuery。提醒重复的ID。



var idMap = {};

var all = document.getElementsByTagName("*");

for (var i=0; i < all.length; i++) {
     // Do something with the element here
     var elem = all[i];
     if(elem.id != ""){ //skip without id
       if(idMap[elem.id]){
          alert("'" + elem.id + "' is not unique")

       }
       idMap[elem.id] = true; 
     }
}
&#13;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

    <title></title>
</head>
<body>
    <div id="id1"></div>
    <div id="id2"></div>
    <div id="id3"></div>
    <div id="id4"></div>
    <div id="id5"></div>
    <div id="id1"></div>
</body>


</html>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

$('[id]').each(function(){
    var ids = $('[id="'+this.id+'"]');
        if (ids.length>1 && ids[0]==this){
            $("#"+this.id).remove();
        }
 });​

上面的函数使用jquery在文档中创建所有ID的数组并删除重复的id

答案 4 :(得分:0)

var idList = [];
$('*[id]').each(function(){
    var id = $(this).attr('id');
    if($.inArray(id, idList)){
        alert('the id ' + id + ' is already set!');
    } else {
        idList.push(id);
    }
});

答案 5 :(得分:0)

这样的事情应该做你想做的事情

$('[id]').each(function (i) {
    $('[id="' + this.id + '"]').slice(1).remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = "1">
ola
</div>
<div id = "2">
ole
</div>
<div id = "1">
ola
</div>
<div id = "3">
olo
</div>
<div id = "1">
ola
</div>
<div id = "3">
olo
</div>

基于链接的示例:jQuery: Finding duplicate ID's and removing all but the first

答案 6 :(得分:-1)

你能不能只控制+ F并搜索id?此外,如果您使用像atom这样的编辑器,则可以在搜索后一次性删除所有其他副本。