//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|$)");
能不能特别解释下这个部分的内容啊?跪求~~~~~~~
这句话是什么意思;"(|\\s)" "(\\s|$)"这2个符号是什么意思;回答那么空洞谁会懂啊
$ 匹配结尾
"(|\\s)" 就是说 className 前面可以有一个空白字符,或者没有
"(\\s|$)" 是指 className 后面可以有一个空白字符,或者结尾
className = className.replace(/\-/g,"\\-");
这个多余的是什么意思呢?
那2个符号分别代表啥?
我去查了下正则表达式的API好像没有这种表示的啊
因为className要在var regex = new RegExp("(|\\s)"+className+"(\\s|$)");中构成正则模式,所以要对className中的-进行转义吧