解决 ByClassName 在IE中的兼容性问题

最近遇到一个document.getElementsByClassName
在IE中的兼容性问题,有兼容性问题的代码如下:
1 2 3 4
| window.onload = function(){ var checkInput = document.getElementsByClassName("check"); alert(checkInput.length); }
|
在IE的低版本中会出现如图所示的问题:

参考了网上的一些代码与视频,解决代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| window.onload = function(){ if(!document.getElementsByClassName){ document.getElementsByClassName = function (cls){ var ret = []; var els = document.getElementsByTagName('*'); for(var i = 0 ; i < els.length; i++){ if(els[i].className === cls || els[i].className.indexOf(cls + ' ') > -1 || els[i].className.indexOf(' ' + cls + ' ') > -1 || els[i].className.indexOf(' ' + cls) > -1){ ret.push(els[i]); } } return ret; } } var checkInput = document.getElementsByClassName("check"); alert(checkInput.length); }
|
相关资料:
getElementsByTagName