//className是传进来的类名称,tag是为了加强过滤,比如所有td下面的class或者input下面的class
function getElementByClassName(className,tag)
{
//获取所有传进来的标签元素的节点
var allTags = document.getElementsByTagName(tag);
var matchingElements = new Array();
//对className做了个正则表达式
className = className.replace(/\-/g,"\\-");
var regex =  new RegExp("(|\\s)"+className+"(\\s|$)");

var element;
//对所有的tag里面进行循环
for(var i=0;i<allTags.length;i++)
{
element = allTags[i];
if(regex.test(element.className))
{
matchingElements.push(element);
}
}
return matchingElements;
}
                  //对className做了个正则表达式
className = className.replace(/\-/g,"\\-");
var regex =  new RegExp("(|\\s)"+className+"(\\s|$)");
能不能特别解释下这个部分的内容啊?跪求~~~~~~~

解决方案 »

  1.   

    第一句是多余的第二句就是匹配 class 呀
      

  2.   

    className是js使用的,html只有class
      

  3.   

    晕啊···我就是想问下var regex = new RegExp("(|\\s)"+className+"(\\s|$)");
    这句话是什么意思;"(|\\s)"  "(\\s|$)"这2个符号是什么意思;回答那么空洞谁会懂啊
      

  4.   

    \\s 匹配空白
    $ 匹配结尾
    "(|\\s)"  就是说 className 前面可以有一个空白字符,或者没有
     "(\\s|$)" 是指 className 后面可以有一个空白字符,或者结尾
      

  5.   

    那能问下
    className = className.replace(/\-/g,"\\-");
    这个多余的是什么意思呢?
    那2个符号分别代表啥?
    我去查了下正则表达式的API好像没有这种表示的啊
      

  6.   

    className = className.replace(/\-/g,"\\-");
    因为className要在var regex = new RegExp("(|\\s)"+className+"(\\s|$)");中构成正则模式,所以要对className中的-进行转义吧