自己动手实现getElementsByClassName
2014-05-19 18:54
337 查看
看了一句话,我们都是搬运工,github的搬运工,下面这代码搬运来自各个地方,最后成型。
var classCache = {};
function getElementsByClassName(cls, root, tag){
var elems, classRE,
rs = [];
root = root || document;
tag = tag || '*';
elems = root.getElementsByTagName(tag);
//去掉字符串前后空格
cls = cls.replace(/^\s+|\s+$/g, '').split(/\s+/g);
cls = cls.join('\\s+[\\S]*\\s*');
classRE = classCache[cls] || new RegExp('(^|\\s+)' + cls + '(\\s+|$)');
for(var i = 0, len = elems.length; i < len; i++){
classRE.test(elems[i].className) && rs.push(elems[i]);
}
return rs;
}
var classCache = {};
function getElementsByClassName(cls, root, tag){
var elems, classRE,
rs = [];
root = root || document;
tag = tag || '*';
elems = root.getElementsByTagName(tag);
//去掉字符串前后空格
cls = cls.replace(/^\s+|\s+$/g, '').split(/\s+/g);
cls = cls.join('\\s+[\\S]*\\s*');
classRE = classCache[cls] || new RegExp('(^|\\s+)' + cls + '(\\s+|$)');
for(var i = 0, len = elems.length; i < len; i++){
classRE.test(elems[i].className) && rs.push(elems[i]);
}
return rs;
}
相关文章推荐
- js原生封装getClassName()方法-ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素
- ie不支持getElementsByClassName,所以要自己实现获取类名为className的所有元素。
- document.getElementsByClassName的理想实现
- document.getElementsByClassName 的理想实现
- 【转】document.getElementsByClassName的理想实现
- getElementsByClassName实现
- document.getElementsByClassName的理想实现
- getElementsByClassName简单实现
- getElementsByClassName函数实现获取指定类名的子元素列表
- javascript getElementsByClassName实现代码
- getElementsByClassName的原生实现
- getElementsByClassName的原生实现
- javascript getElementsByClassName实现代码
- IE8以下浏览器不支持document.getElementsByClassName() 访问节点;怎么解决?---封装自己的类名
- 我的getElementsByClassName实现
- getElementsByClassName 原生实现
- document.getElementsByClassName的理想实现(@司徒正美 大神)
- getElementsByClassName的实现
- 封装getElementsByClassName方法,实现兼容旧浏览器
- 实现ES5以下兼容,Object.create()、getElementsByClassName()