這可以使用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