className的几个方法:有无 增 删 toggle
2012-02-17 20:30 边缘er 阅读(343) 评论(0) 收藏 举报获取元素样式类名的数组:
function getClassNames(element){
return element.className.replace(/\s+/, ' ').split(' ');
}
检测是否存在某个样式类:
function hasClassName(element, className){
var classes = getClassNames(element);
for (var i=0;i<classes.length;i++){
if(classes[i] == className){
return true;
}
}
return false;
}
添加样式类:
function addClassName(element, className){
element.className += (element.className ? ' ':'') + className;
return true;
}
删除样式类:
function removeClassName(element, className){
var classes = getClassNames(element);
var len = classes.length;
for (var i=len-1; i>=0; i--){
if (classes[i] == className){
delete(classes[i]);
}
}
element.className = classes.join(' ');
return (len == classes.length ? false : true);
}
toggleClassName:
function toggleClassName(element, className){
if (hasClassName(element, className)){
removeClassName(element, className);
}else{
addClassName(element, className);
}
}
以上方法来自高级程序设计,以前自己也写过一个类似toggleClassName的方法,
function toggleClass(element, newClass){
var classOld = element.className;
if (classOld.indexOf(newClass) > -1){
element.className = classOld.replace(newClass, '')
} else{
element.className = classOld + " " + newClass;
}
}
浙公网安备 33010602011771号