className的几个方法:有无 增 删 toggle
2012-02-17 20:30 边缘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;
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步