添加还好弄一些,删除就麻烦了。
添加的思路是,获取当前元素的className,如果当前元素的className是空的话,直接把新className给他就行了,如果不是,就加个空白,添加到当前className的后面。
删除好麻烦,要获取当前元素的className,如果当前的className不是空的话,就用空格把当前的className分割一下,转成数组,然后循环数组,如果数组中的某一项是要删除的内容,就在数组里删除这项,循环结束后,再把数组用空格连成字符串,这个字符串就是删除后的className了。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>添加删除元素的className</title> <style type="text/css"> .box{ width:100px; height:100px; background:#C33;} </style> <script type="text/javascript"> window.onload=function(){ var box=document.getElementById('box'); addClassName(box,'aa'); addClassName(box,'bb'); addClassName(box,'cc'); addClassName(box,'dd'); delClassName(box, 'dd'); delClassName(box, 'aa'); }; function addClassName(obj,className){ if(obj.className==''){ obj.className=className; }else{ obj.className+=' '+className; } } function delClassName(obj,className){ var currentClassName=obj.className; if(currentClassName!=''){ var currentClassNameArray=currentClassName.split(' '); var i=0; for(i=0; i<currentClassNameArray.length; i++){ if(currentClassNameArray[i]==className){ currentClassNameArray.splice(i,1); } } var nowClassName=currentClassNameArray.join(' '); obj.className=nowClassName; } } </script> </head> <body> <div class="box" id="box"></div> </body> </html>