代码改变世界

className的几个方法:有无 增 删 toggle

  边缘er  阅读(318)  评论(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;
}
}
努力加载评论中...
点击右上角即可分享
微信分享提示