document.getElementsByClassName在ie8及其以下浏览器的兼容性问题

 
原生js方法“document.getElementsByClassName”在ie8及其以下浏览器中,不能使用。
修改:加入兼容性判断,在需要用到该方法的位置修改为getClassNames方法。
 
代码如下:
原来方法: document.getElementsByClassName('tabs_div');
这里的调用方法为:getClassNames('tabs_div' , 'div');
[javascript] view plaincopy
 
  1. var  divs = getClassNames('tabs_div' , 'div');  
  2. function getClassNames(classStr,tagName){  
  3.       if (document.getElementsByClassName) {  
  4.             return document.getElementsByClassName(classStr)  
  5.       }else {  
  6.             var nodes = document.getElementsByTagName(tagName),ret = [];           
  7.             for(i = 0; i < nodes.length; i++) {  
  8.          if(hasClass(nodes[i],classStr)){  
  9.                 ret.push(nodes[i])  
  10.          }  
  11.       }  
  12.       return ret;  
  13.        }  
  14. }  
  15. function hasClass(tagStr,classStr){  
  16.      var arr=tagStr.className.split(/\s+/ );  //这个正则表达式是因为class可以有多个,判断是否包含  
  17.      for (var i=0;i<arr.length;i++){  
  18.             if (arr[i]==classStr){  
  19.                   return true ;  
  20.             }  
  21.      }  
  22.      return false ;  
  23. }  
posted @ 2014-12-23 14:15  丁元新  阅读(1242)  评论(0编辑  收藏  举报
Top