推荐一个封装好的getElementsByClassName方法
2014-12-02 00:00
417 查看
我们知道,原生的JS给我们提供了getElementsByClassName方法,可以通过此方法获取到含有某指定class的节点集合,注意是集合,也就是此函数返回一个数组。
但是,IE却并不支持这个方法,但这方法却是很有实用性,所以,我们又不得不专门为IE实现这么一个函数。
使用方法:
oEle、sClass是必填的,sEle是选填的。
sClass中又中横线或下划线亲测木有问题,比如说:box-box box_box;但是如果是其他特殊字符就很有可能有问题了,如:box$box… 当然可以自己加转义搞定特殊字符,如:box\\$box…
兼容性:亲测ie6+
小伙伴们自己使用一下就知道了,超级好用,扩散下给其他小伙伴吧。
但是,IE却并不支持这个方法,但这方法却是很有实用性,所以,我们又不得不专门为IE实现这么一个函数。
function getElementsByClassName(oEle,sClass,sEle){ if(oEle.getElementsByClassName){ return oEle.getElementsByClassName(sClass); }else{ var aEle=oEle.getElementsByTagName(sEle || '*'), reg=new RegExp('(^|\\s)'+sClass+'($|\\s)'), arr=[], i=0, iLen=aEle.length; for(; i<iLen; i++){ if(reg.test(aEle[i].className)){ arr.push(aEle[i]); } } return arr; } }
使用方法:
//第一种:选择document下的所有class为box_box的div元素 getElementsByClassName(document,'box_box','div')[0].style.background='yellow'; //第二种:选择document下的所有class为box-box的div元素 getElementsByClassName(document,'box-box','div')[0].style.background='yellow'; //第三种:选择document下的所有class为box-box元素 getElementsByClassName(document,'box-box')[0].style.background='yellow';
oEle、sClass是必填的,sEle是选填的。
sClass中又中横线或下划线亲测木有问题,比如说:box-box box_box;但是如果是其他特殊字符就很有可能有问题了,如:box$box… 当然可以自己加转义搞定特殊字符,如:box\\$box…
兼容性:亲测ie6+
小伙伴们自己使用一下就知道了,超级好用,扩散下给其他小伙伴吧。
相关文章推荐
- 推荐一个封装好的getElementsByClassName方法
- js 教你怎么封装 例如如何封装getElementsByClassName()方法
- 封装getElementsByClassName方法,实现兼容旧浏览器
- IE不支持getElementsByClassName()方法的问题
- IE浏览器不支持getElementsByClassName的解决方法
- 进一步优化—IE8以下浏览器不支持document.getElementsByClassName() 访问节点;怎么解决?---封装自己的类名
- 解决对象不支持“getElementsByClassName”属性或方法 ie兼容性
- IE8以下浏览器不支持document.getElementsByClassName() 访问节点;怎么解决?---封装自己的类名
- js 如何获取class的元素 以及创建方法getElementsByClassName
- 兼容浏览器的getElementsByClassName方法
- js原生封装getClassName()方法-ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素
- 解决IE8以下不支持getElementsByClassName的方法
- HTML5实战与剖析之CSS选择器getElementsByClassName()方法
- 解决IE8一下不支持getElementsByClassName的方法
- javascript DOM编程艺术学习笔记(1)重写getElementsByClassName(class)方法
- 关于IE中getElementsByClassName不能用的问题解决方法
- 原生js方法document.getElementsByClassName在ie8及其以下的兼容性问题
- IE浏览器支持getElementsByClassName方法
- js 获取class的元素的方法 以及创建方法getElementsByClassName
- JS批量获取class命名节点的方法: getElementsByClassName()