原生js方法document.getElementsByClassName在ie8及其以下的兼容性问题

document.getElementsByClassName在ie8及其以下浏览器的兼容性问题,在ie8及其以下浏览器中不能使用,针对这个问题,下面给出详细的解决方法,感兴趣的朋友可以参考下
 
 
 
 
 
原生js方法“document.getElementsByClassName”在ie8及其以下浏览器中,不能使用。 

修改:加入兼容性判断,在需要用到该方法的位置修改为getClassNames方法。 

代码如下: 

原来方法: document.getElementsByClassName('tabs_div'); 

这里的调用方法为:getClassNames('tabs_div' , 'div'); 

 
代码如下:

var divs = getClassNames('tabs_div' , 'div'); 
function getClassNames(classStr,tagName){ 
if (document.getElementsByClassName) { 
return document.getElementsByClassName(classStr) 
}else { 
var nodes = document.getElementsByTagName(tagName),ret = []; 
for(i = 0; i < nodes.length; i++) { 
if(hasClass(nodes[i],classStr)){ 
ret.push(nodes[i]) 


return ret; 


function hasClass(tagStr,classStr){ 
var arr=tagStr.className.split(/s+/ ); //这个正则表达式是因为class可以有多个,判断是否包含 
for (var i=0;i<arr.length;i++){ 
if (arr[i]==classStr){ 
return true ; 


return false ; 
 
 
原文地址:https://www.cnblogs.com/999c/p/5170712.html