对DOM元素的类型进行增、删、查操作
由于还是初学阶段,不很喜欢用JQUERY,所以还是把这几个简单的功能自己实现一下。其中,使用className可以获得跨浏览器兼容性。注意到在className中搜索某个类名时,需要保证匹配的字符串前后的字符不能是除了空格之外的字符。例如要匹配的类名是"a-b",那么,假如className等于" a-b-c 0-a-b",那么就会失配。
这段代码处理能力有限,当sClass包含括号、中括号、花括号等正则式元字符时,可能会出问题,不过,没几个人会用这些符号做类名吧,所以不考虑。
代码如下:
ClassManager = {
isClass:function(oElement,sClass)
{
var oRe = new RegExp("(^| +)"+sClass+"( +|$)","");
if(oRe.test(oElement.className)){
return true;
}else{
return false;
}
},
addClass:function(oElement,sClass)
{
if(!this.isClass(oElement,sClass)){
oElement.className += " "+sClass;
}
//alert("after add" + oElement.className);
},
delClass:function(oElement,sClass)
{
var oRe = new RegExp("(^| +)"+sClass+"( +|$)","");
if(this.isClass(oElement,sClass)){
oElement.className = oElement.className.replace(oRe," ");
}
//alert("after del" + oElement.className);
}
};