这可以使用JavaScript来完成吗?检查是否存在具有相同ID的HTML元素
回答
如果你想找出是否超过一个元素共用一个ID,使用jQuery你可以做$('[id=blah]').length
- 这将返回所有元素的计数,其中id等于'blah'。见the fiddle。如果它大于1,那么你有一个重复的ID。
编辑:我已经在Chrome,FF和IE6中测试过了,它们都显示有两个元素具有相同的ID。我同意多个元素共享一个id是非常糟糕的形式,但是这个代码确实有效。
-1表示可能有几个id等于'blah'的元素。 :-) – 2010-11-16 10:22:15
@Marco - 阅读这个问题:“检查是否存在具有相同ID的HTML元素”我认为OP在问你是否可以检查多个元素是否共享相同的ID。 – Skilldrick 2010-11-16 10:23:06
似乎很甜.... – Sussagittikasusa 2010-11-16 10:24:22
if(!document.getElementById('search')) { return; }
可能(如果我没有理解这个问题)
if (document.getElementById('theId')) {
}
是我最初的想法,但我重新阅读了这个问题,它可能是多个元素可能已经存在相同的ID,在这种情况下,只有其中一个会在这里返回。 – 2010-11-16 10:14:39
没错,如果多个具有相同ID的元素已经存在? – Sussagittikasusa 2010-11-16 10:17:54
如果您有多个具有相同ID的元素,那么您已经离开了有效的HTML领域,并且可能无法让DOM方法正常工作,尤其是在不同的浏览器中。 – Thilo 2010-11-16 10:19:22
是的。 迭代直通document.getElementsByTagName('*')
,使用element.getAttribute('id')
此外,为了打印所有副本:
var elems = document.getElementsByTagName('*');
var num = elems.length;
var ids = [ ];
for(i=0; i<num; i++) {
var id = elems[i].getAttribute('id');
if(id != null) {
if(ids.indexOf(id) >=0) {
console.debug(id); // found in table
} else {
ids.push(id); // new id found, add it to array
}
}
}
- 1. MySQL - 检查是否存在具有相同ID的数组值
- 2. 检查是否存在具有相同ID的通知?
- 3. 检查一个类的元素是否具有相同的html内容
- 4. 检查具有相同ID的输入文本是否具有相同的值
- 5. 在两个具有其他id的div元素中有两个具有相同id的元素是否正常?
- 6. 识别具有相同ID的元素
- 7. 检查元素是否具有类
- 8. 检查div是否有html元素
- 9. 检查数组中的所有元素是否具有相同的值Swift
- 10. 如何检查列中的所有元素是否具有相同的文本?
- 11. 如何更改具有相同ID的所有元素javascript/html?
- 12. 如何检查具有特定属性值的html元素是否存在
- 13. JS - 检查是否同一类的元素有ID
- 14. 如何检查具有相同类名的元素是否具有足够的元素?
- 15. 检查HTML中是否存在ID
- 16. 检查列中的单元格是否具有相同的值
- 17. HTML元素与[id]具有相同的[名称]可以吗?
- 18. 具有相同ID导致错误的多个HTML元素
- 19. 如何检查列表中的所有元素是否相同?
- 20. JQuery检查下一个可见元素是否具有相同的类
- 21. jQuery:如何检查两个元素是否具有相同的类
- 22. 如何检查两个元素是否具有相同的文本格式?
- 23. 检查两个数组是否具有相同顺序的元素
- 24. 几个具有相同ID的HTML元素,是不是很错误?
- 25. jquery检查元素是否有元素
- 26. 检查两个ID是否相同
- 27. 检查列是否在所有行上具有相同的值
- 28. 用于检查特定ID的SQL查询是否具有相同的日期
- 29. 检查ListViewItemCollection元素是否存在
- 30. JAXB - 检查是否存在子元素
,我认为这将是明智将元素添加到文档之前要检查多个ID - 无论是在你的服务器或客户端。 – 2010-11-16 10:15:45