您的位置:首页 > 其它

自己动手实现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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: