html5中文学习网

您的位置: 首页 > 网页制作 > css教程 » 正文

原生js方法document.getElementsByClassName在ie8及其以下的兼容性问题_浏览器兼容教程_CSS_网页制作

[ ] 已经帮助:人解决问题
点评:document.getElementsByClassName在ie8及其以下浏览器的兼容性问题,在ie8及其以下浏览器中不能使用,针对这个问题,下面给出详细的解决方法,感兴趣的朋友可以参考下
原生js方法“document.getElementsByClassName”在ie8及其以下浏览器中,不能使用。 PMrHTML5中文学习网 - HTML5先行者学习网
PMrHTML5中文学习网 - HTML5先行者学习网
修改:加入兼容性判断,在需要用到该方法的位置修改为getClassNames方法。 PMrHTML5中文学习网 - HTML5先行者学习网
PMrHTML5中文学习网 - HTML5先行者学习网
代码如下: PMrHTML5中文学习网 - HTML5先行者学习网
PMrHTML5中文学习网 - HTML5先行者学习网
原来方法: document.getElementsByClassName('tabs_div'); PMrHTML5中文学习网 - HTML5先行者学习网
PMrHTML5中文学习网 - HTML5先行者学习网
这里的调用方法为:getClassNames('tabs_div' , 'div'); PMrHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
PMrHTML5中文学习网 - HTML5先行者学习网
var divs = getClassNames('tabs_div' , 'div'); PMrHTML5中文学习网 - HTML5先行者学习网
function getClassNames(classStr,tagName){ PMrHTML5中文学习网 - HTML5先行者学习网
if (document.getElementsByClassName) { PMrHTML5中文学习网 - HTML5先行者学习网
return document.getElementsByClassName(classStr) PMrHTML5中文学习网 - HTML5先行者学习网
}else { PMrHTML5中文学习网 - HTML5先行者学习网
var nodes = document.getElementsByTagName(tagName),ret = []; PMrHTML5中文学习网 - HTML5先行者学习网
for(i = 0; i < nodes.length; i++) { PMrHTML5中文学习网 - HTML5先行者学习网
if(hasClass(nodes[i],classStr)){ PMrHTML5中文学习网 - HTML5先行者学习网
ret.push(nodes[i]) PMrHTML5中文学习网 - HTML5先行者学习网
} PMrHTML5中文学习网 - HTML5先行者学习网
} PMrHTML5中文学习网 - HTML5先行者学习网
return ret; PMrHTML5中文学习网 - HTML5先行者学习网
} PMrHTML5中文学习网 - HTML5先行者学习网
} PMrHTML5中文学习网 - HTML5先行者学习网
function hasClass(tagStr,classStr){ PMrHTML5中文学习网 - HTML5先行者学习网
var arr=tagStr.className.split(//s+/ ); //这个正则表达式是因为class可以有多个,判断是否包含 PMrHTML5中文学习网 - HTML5先行者学习网
for (var i=0;i<arr.length;i++){ PMrHTML5中文学习网 - HTML5先行者学习网
if (arr[i]==classStr){ PMrHTML5中文学习网 - HTML5先行者学习网
return true ; PMrHTML5中文学习网 - HTML5先行者学习网
} PMrHTML5中文学习网 - HTML5先行者学习网
} PMrHTML5中文学习网 - HTML5先行者学习网
return false ; PMrHTML5中文学习网 - HTML5先行者学习网
} PMrHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助