Archive for 五月 14th, 2010

JS批量获取class命名节点 getElementsByClassName()

星期五, 五月 14th, 2010

 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;
};

(更多…)