一个效率极低的 getElementsByClassName 待改进

 

function getElementsByClassName(className) {
/*浏览器原生*/
if(document.getElementsByClassName) {
return document.getElementsByClassName(className);
}

/*
查看文档元素的class中包含了所有查询的class没有,全有则添加到数组中。
*/
var all = document.getElementsByTagName("*");
var ele = [];
var cla_str = "|" + className.split(" ").sort().join("|") + "|";
for(var i=0; i<all.length; i++) {

all_str = "|" + all[i].className.split(" ").sort().join("|") + "|";
if(all_str.indexOf(cla_str) != -1) {
//查找到
ele.push(all[i])
}
}
return ele;
}

应该是 split(" ").sort().join("|") 的太多了 导致效率过低

posted on 2011-12-19 16:53  僵尸  阅读(155)  评论(0)    收藏  举报

导航