昨天面试时被问到这个,答得不好,回来重写了一遍,代码如下:
toggle
<script type="text/javascript">
var element = document.getElementById('test'); //得到元素
function toggle(color){
var classes = element.className; //得到元素类名
if (!classes) { //若类名不存在,直接添加类
element.className = color;
}
else {
var classArr = classes.split(' '); //把类名转成数组形式,方便处理
var exist = false; //用变量标识传入的类是否已经存在
for (var i = 0; i < classArr.length; i++) {
if (classArr[i] === color){
classArr.splice(i,1); //类存在,删除之
element.className = Array.prototype.join.call(classArr," "); //把数组转成字符串并赋值
exist = true;
break;
}
}
if (!exist) {
classArr.push(color); //不存在类,加入数组
element.className = Array.prototype.join.call(classArr," "); //把数组转成字符串并赋值
}
}
}
</script>
代码还是要多敲敲滴。。