IE浏览器不支持getElementsByClassName的解决方法


Posted in Javascript onAugust 27, 2014

在DOM3里已经加入了getElementsByClassName这个方法,然而IE9、10以外的其它版本均不支持,这是一块伤痛啊!
目前可以这么解决,判断浏览器支不支持这个方法,如果支持就不管;如果不支持,就在document对象里加入getElementsByClassName这个方法,这样的写法有一个好处,即不管有没有原生函数你都不用去修改代码。

网上部分人直接定义一个getElementsByClassName函数,但是这样的话就需要把代码中所有使用document.getElementsByClassName改写成getElementsByClassName。多少有点不方便,也不通用。

下面的方法完美支持了document写法:

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;
  };
}
Javascript 相关文章推荐
JavaScript 数组运用实现代码
Apr 13 Javascript
JavaScript 学习历程和心得分享
Dec 12 Javascript
javascript错误的认识不用关心内存管理
Dec 15 Javascript
js猜数字小游戏的简单实现代码
Jul 02 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
Feb 19 Javascript
jQuery简单操作cookie的插件实例
Jan 13 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
Apr 07 Javascript
关于JavaScript数组你所不知道的3件事
Aug 24 Javascript
JS重载实现方法分析
Dec 16 Javascript
基于vue实现多引擎搜索及关键字提示
Mar 16 Javascript
JavaScript实现form表单的多文件上传
Mar 27 Javascript
Javascript中parseInt的正确使用方式
Oct 17 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
Aug 27 #Javascript
JavaScript闭包函数访问外部变量的方法
Aug 27 #Javascript
JavaScript中switch判断容易犯错的一个细节
Aug 27 #Javascript
JavaScript中使用arguments获得函数传参个数实例
Aug 27 #Javascript
JavaScript中输出标签的方法
Aug 27 #Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
Aug 27 #Javascript
JavaScript实现的使用键盘控制人物走动实例
Aug 27 #Javascript
You might like
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
php对数组排序代码分享
2014/02/24 PHP
PHP设置images目录不充许http访问的方法
2016/11/01 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
JavaScript中的方法重载实例
2015/03/16 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
c++生成dll使用python调用dll的方法
2014/01/20 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
python selenium xpath定位操作
2020/09/01 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
金士达面试非笔试
2012/03/14 面试题
中专毕业生自我鉴定范文
2013/11/09 职场文书
《日月潭》教学反思
2014/02/28 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
雷人标语集锦
2014/06/19 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
mysql部分操作
2021/04/05 MySQL
Python使用scapy模块发包收包
2021/05/07 Python
SQL Server表分区删除详情
2021/10/16 SQL Server
Redis全局ID生成器的实现
2022/06/05 Redis