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 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
js实现可拖动DIV的方法
Dec 17 Javascript
微信JSSDK上传图片
Aug 23 Javascript
javascript中substring()、substr()、slice()的区别
Aug 30 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
Nov 24 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
Nov 30 Javascript
js实现上一页下一页的效果【附代码】
Mar 10 Javascript
JS中frameset框架弹出层实例代码
Apr 01 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
Jun 12 Javascript
JS实现自定义状态栏动画文字效果示例
Oct 12 Javascript
js 闭包深入理解与实例分析
Mar 19 Javascript
js实现自动锁屏功能
Jun 02 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数组删除元素示例
2014/03/21 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
PHP实现八皇后算法
2019/05/06 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
2017/06/19 Javascript
详解Koa中更方便简单发送响应的方式
2018/07/20 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
python中字符串类型json操作的注意事项
2017/05/02 Python
浅析使用Python操作文件
2017/07/31 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
教师档案管理制度
2014/01/23 职场文书
意向书范本
2014/07/29 职场文书
2015年女职工工作总结
2015/05/15 职场文书
班主任寄语2016
2015/12/04 职场文书
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA