Saber 酱的抱枕

Fly me to the moon

11/16
2016
学习

在低版本IE浏览器上实现getElementsByClassName()方法

javascript中的document.getElementsByClassName()方法是很实用也很常见的DOM选择器方法,然而IE8及以下版本的IE浏览器并不支持此方法(IE8都支持querySelector()方法了,却不支持getElementsByClassName()方法,实在匪夷所思)。

下面的代码可以在低版本IE浏览器中实现一个document.getElementsByClassName()方法。

if (!document.getElementsByClassName) {
	document.getElementsByClassName = function(className, element) {
		var children = (element || document).getElementsByTagName('*');
		var elements = new Array();
		for (var i = 0; i < children.length; i++) {
			var child = children[i];
			var classNames = child.className.split(' ');
			for (var j = 0; j < classNames.length; j++) {
				if (classNames[j] == className) {
					elements.push(child);
					break;
				}
			}
		}
		return elements;
	};
}

加入这份代码之后,就可以正常使用document.getElementsByClassName()方法了。

(也许遍历所有HTML标签开销比较大←_← 只要求兼容到IE8的话尽情的使用querySelector()方法和querySelectorAll()方法吧)

在低版本IE浏览器上实现getElementsByClassName()方法

      1. Google Chrome 45Google Chrome 45Windows 10/11Windows 10/11

        视为无理需求,不做! 发给他们一个 chrome 安装包。。。。。
        以前也有要求非要兼容 excel 2003。。。。直接发 office 2013 安装镜像,MDZZ 坚决不做

        回复
        1. saber 文章作者
          Google Chrome 54Google Chrome 54Windows 7 x64 EditionWindows 7 x64 Edition

          建的网站是给广大网民看的啊 不是给少数人看的……

          回复