有没有办法检查两个div是否具有相同的ID?
我动态创建了div,我发现很难删除ID重复的div,有人可以帮忙吗?
答案 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;
答案 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这样的编辑器,则可以在搜索后一次性删除所有其他副本。