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 来操作字符串(一些字符串函数)
Feb 15 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
May 23 Javascript
JavaScript 32位整型无符号操作示例
Dec 08 Javascript
js使用DOM操作实现简单留言板的方法
Apr 10 Javascript
jquery带翻页动画的电子杂志代码分享
Aug 21 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
Sep 21 Javascript
jQuery实现的简单悬浮层功能完整实例
Jan 23 Javascript
微信小程序实现导航栏选项卡效果
Jun 19 Javascript
JS实现简单的抽奖转盘效果示例
Feb 16 Javascript
Jquery的autocomplete插件用法及参数讲解
Mar 12 jQuery
微信小程序template模版的使用方法
Apr 13 Javascript
javascript实现点击星星小游戏
Dec 24 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中的MVC模式运用技巧
2007/05/03 PHP
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
测试php函数的方法
2013/11/13 PHP
ThinkPHP多语言支持与多模板支持概述
2014/08/22 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
DOM相关内容速查手册
2007/02/07 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
ES6新特性五:Set与Map的数据结构实例分析
2017/04/21 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
跟老齐学Python之一个免费的实验室
2014/09/14 Python
彻底搞懂Python字符编码
2018/01/23 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
Python pandas如何向excel添加数据
2020/05/22 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
python性能测试工具locust的使用
2020/12/28 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
2021/01/20 HTML / CSS
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
养殖人员的创业计划书范文
2013/12/26 职场文书
一年级数学教学反思
2014/02/01 职场文书
运动会口号大全
2014/06/07 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书