document.getElementsByClassName在ie8及其如下瀏覽器的兼容性問題

 
原生js方法「document.getElementsByClassName」在ie8及其如下瀏覽器中,不能使用。
修改:加入兼容性判斷,在須要用到該方法的位置修改成getClassNames方法。
 
代碼以下:
原來方法: document.getElementsByClassName('tabs_div');
這裏的調用方法爲:getClassNames('tabs_div' , 'div');
[javascript]  view plain copy
 
  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. }  
相關文章
相關標籤/搜索