参数:
obj:要添加class属性的元素
cn:要操作的class值
addClass函数:向一个元素中添加指定的class属性值
function addClass(obj,cn){
if(!hasClass(obj,cn)){
obj.className+=" "+cn;
}
}
hasClass函数:判断一个元素中是否含有指定的class属性值,如果含有指定的class属性值返回true,否则返回false
function hasClass(obj,cn){
var reg=new RegExp("\\b"+cn+"\\b");
return reg.test(obj.className);
}
removeClass函数:删除一个元素中指定的class属性
function removeClass(obj,cn){
var reg=new RegExp("\\b"+cn+"\\b");
obj.className=obj.className.replace(reg,"");
}
toggleClass函数:切换一个类,如果元素中具有该类则删除,如果元素中没有该类则添加
function toggleClass(obj,cn){
if(hasClass(obj,cn)){
removeClass(obj,cn);
}else{
addClass(obj,cn);
}
}
使用正则表达式的原因是,在class属性中可能会出现包含字符串的情况,而且传入的是一个变量,所以使用正则表达式new RegExp()的创建模式。而且为了放置多次添加同一个类,我们需要判断类中是否有传入的属性值。