添加还好弄一些,删除就麻烦了。

添加的思路是,获取当前元素的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>