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 相关文章推荐
JS 对象介绍
Jan 20 Javascript
jquery仿百度经验滑动切换浏览效果
Apr 14 Javascript
DIV+CSS+jQ实现省市联动可扩展
Jun 22 Javascript
BOM之navigator对象和用户代理检测
Feb 10 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
Feb 18 Javascript
详谈js遍历集合(Array,Map,Set)
Apr 06 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
Sep 21 Javascript
vue init失败简单解决方法(终极版)
Dec 22 Javascript
解决使用vue.js路由后失效的问题
Mar 17 Javascript
Vue.js样式动态绑定实现小结
Jan 24 Javascript
ES10 特性的完整指南小结
Mar 04 Javascript
用vite搭建vue3应用的实现方法
Feb 22 Vue.js
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动态生成静态HTML网页的代码
2010/03/04 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
10款实用的PHP开源工具
2015/10/23 PHP
php验证码生成代码
2015/11/11 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
python脚本替换指定行实现步骤
2017/07/11 Python
Python求解任意闭区间的所有素数
2018/06/10 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
django修改models重建数据库的操作
2020/03/31 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
2014年秋季开学寄语
2014/08/02 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
解决MySQL报“too many connections“错误
2022/04/19 MySQL
Django框架模板用法详解
2022/06/10 Python
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技