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操作iframe父页面与子页面的元素与方法(实例讲解)
Nov 20 Javascript
javascript搜索框效果实现方法
May 14 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
Sep 21 Javascript
原生javascript实现匀速运动动画效果
Feb 26 Javascript
JS控制静态页面传递参数并获取参数应用
Aug 10 Javascript
AngularJS中watch监听用法分析
Nov 04 Javascript
深入理解vue.js双向绑定的实现原理
Dec 05 Javascript
Angular 输入框实现自定义验证功能
Feb 19 Javascript
JQueryDOM之样式操作
Mar 27 jQuery
实例详解vue中的$root和$parent
Apr 29 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
Aug 08 Javascript
微信小程序利用button控制条件标签的变量问题
Mar 15 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与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
php的curl实现get和post的代码
2008/08/23 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
PHP生成RSS文件类实例
2014/12/05 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
js实现快速分享功能(你的文章分享工具)
2013/06/25 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
nodejs微信开发之自动回复的实现
2019/03/17 NodeJs
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
Python中的迭代器漫谈
2015/02/03 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
python使用电子邮件模块smtplib的方法
2016/08/28 Python
python中pip的安装与使用教程
2018/08/10 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
新闻记者实习自我鉴定
2013/09/19 职场文书
怎样写好自荐信和推荐信
2013/12/26 职场文书
怎么写好自荐书
2014/03/02 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
学生请假条格式
2014/04/11 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
质量月口号
2014/06/20 职场文书
医院领导班子整改方案
2014/10/01 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis