getElementsByClassName() 是一个老的方法了,将其优化整理后给大家提供。
代码如下:
// 批量获取class命名节点
function getElementsByClassName(className, tag, parent){
var parent = parent || document;
var tag = tag||"*";
if(!(parent = F$(parent))){return false;}
// 查找所有匹配标签
var allTags = (tag == "*" && parent.all) ? parent.all : F$$(tag, parent);
var classElements = [];
// 创建一个正则表达是来判断className的正确性
className = className.replace(/\-/g, "\\-");
var regex = new RegExp("(^|\\s)" + className + "(\\s|$)");
var elenemt;
// 检查每个元素
for(var i=0; i<allTags.length; i++){
elem = allTags[i];
if(regex.test(elem.className)){
classElements.push(elem);
}
}
return classElements;
};