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 相关文章推荐
JQuery选择器特辑 详细小结
May 14 Javascript
在百度知道团队中快速审批新成员的js脚本
Feb 02 Javascript
基于jQuery实现select下拉选择可输入附源码下载
Feb 03 Javascript
基于javascript html5实现多文件上传
Mar 03 Javascript
JavaScript编码风格指南(中文版)
Aug 26 Javascript
关于ES6的六个小特性(二)
Feb 20 Javascript
Bootstrap fileinput文件上传预览插件使用详解
May 16 Javascript
关于Vue的路由权限管理的示例代码
Mar 06 Javascript
vue2.0的虚拟DOM渲染思路分析
Aug 09 Javascript
Vue项目安装插件并保存
Jan 28 Javascript
微信小程序获取当前位置和城市名
Nov 13 Javascript
vue使用swiper实现左右滑动切换图片
Oct 16 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
php基础知识:类与对象(1)
2006/12/13 PHP
实用函数8
2007/11/08 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
理解javascript中try...catch...finally
2015/12/25 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
详解JavaScript的变量
2019/04/04 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
python之yield表达式学习
2014/09/02 Python
分享Python字符串关键点
2015/12/13 Python
pycharm远程调试openstack的图文教程
2017/11/21 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
python 检测图片是否有马赛克
2020/12/01 Python
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
注塑工厂厂长岗位职责
2013/12/02 职场文书
模范教师事迹材料
2014/02/10 职场文书
办公设备采购方案
2014/03/16 职场文书
教学质量评估实施方案
2014/03/17 职场文书
宣传部部长竞选演讲稿
2014/04/26 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
社区灵活就业证明
2014/11/03 职场文书
复兴之路展览观后感
2015/06/02 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers