找出页面内重复的Id

今天群里提起这事,
判断页面内是否有重复的id

一种是已知id,看是否有重复。基本上Ctrl+F就能搞定~
但是Robin给出了方法:

  1. function chkid(idname){
  2.     s=0;
  3.     divs = document.getElementsByTagName("*");
  4.     for (i=0; i<divs.length; i++){
  5.         if(divs[i].getAttribute("id")==idname)
  6.             s++;
  7.     }
  8.     alert(s);
  9. }

而后我又在其基础上修改了能够找出页面内所有重复的Id

  1. function chkid(){
  2.     var did={},tmpid;
  3.     divs = document.getElementsByTagName("*");
  4.     for (var i=divs.length-1; i+1; i--){
  5.         (tmpid=divs[i].id)
  6.             &&did[tmpid]===undefined
  7.                 ?did[tmpid]=0
  8.                 :did[tmpid]++;
  9.     }
  10.     for (var i in did) {
  11.         did[i]&&alert("id="+i+"重复了"+(did[i]+1)+"");
  12.     }
  13. }

比较可靠,兼容ie和ff。
不过一般的html检查器都有这个功能,这个代码又有多大用处呢?呵呵,感觉没有。

This entry was posted in JavaScript and tagged . Bookmark the permalink.

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>