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监测ActiveX控件是否已经安装过的代码
Sep 02 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
Feb 13 Javascript
js中对象的声明方式以及数组的一些用法示例
Dec 11 Javascript
基于js与flash实现的网站flv视频播放插件代码
Oct 14 Javascript
JavaScript操作HTML元素和样式的方法详解
Oct 21 Javascript
基于javascript实现checkbox复选框实例代码
Jan 28 Javascript
jquery实现百叶窗效果
Jan 12 Javascript
vue 中自定义指令改变data中的值
Jun 02 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
React 父子组件通信的实现方法
Dec 05 Javascript
详解vue高级特性
Jun 09 Javascript
浅析VUE防抖与节流
Nov 24 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中对xml读取的相关函数的介绍一
2008/06/05 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
简单实现php上传文件功能
2017/09/21 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
js导入导出excel(实例代码)
2013/11/25 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
React Native实现进度条弹框的示例代码
2017/07/17 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
python脚本爬取字体文件的实现方法
2017/04/29 Python
python读取和保存视频文件
2018/04/16 Python
PyQt5实现拖放功能
2018/04/25 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
大学生工作推荐信范文
2013/12/02 职场文书
公司财务自我评价分享
2013/12/17 职场文书
中国文明网签名寄语
2014/01/18 职场文书
运动会通讯稿200字
2014/02/16 职场文书
团组织推优材料
2014/12/29 职场文书
离婚协议书的范本
2015/01/27 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
Python 正则模块详情
2021/11/02 Python
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
HTML基本元素标签介绍
2022/02/28 HTML / CSS