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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生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 ; 
 
 

以上是关于原生js方法document.getElementsByClassName在ie8及其以下的兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章

JS数组的find()和some()方法

JS的document.all函数使用示例

js-JavaScript高级程序设计学习笔记21 改善JavaScript性能的方法

iOS js

js - 点击事件

jqueryjs调用iframe父窗口与子窗口元素的方法整理