-
1、传统方法:
在操作类名的时候,需要通过className属性添加、删除和替换类名。如下面例子:
1<divclass="bd user disabled">...</div>
这个div中一共有三个类名,要从中删掉一个类名,需要把这三个类分别拆开,然后进行处理,处理过程如下:1234567891011121314<script type="text/javascript">var className=div.className.split(/s+/);//找到要删掉的类名var pos=-1,i,len;for(var i =0; i < className.length; i++) {if(className[i]=="user"){pos=i;break;}};className.splice(i,1);div.className=className.join(" ");//将余下的类名重新拼装</script>
上述方面即为传统的方法。2、html5新增方法classList(),可以完全摆脱className属性。
具体使用案例如下:
1234567891011121314151617181920212223242526272829303132333435363738<title>classList Example</title><style>.highlight {background: yellow;}</style><div id="myDiv"class="init">Hello world!</div><input type="button"value="Add class"onclick="addClass()"><input type="button"value="Remove class"onclick="removeClass()"><input type="button"value="Toggle class"onclick="toggleClass()"><input type="button"value="Contains class?"onclick="containsClass()"><p>This demo works in Firefox3.6and Chrome8.</p><script type="text/javascript">function addClass(){var myDiv = document.getElementById("myDiv");myDiv.classList.add("highlight");}function removeClass(){var myDiv = document.getElementById("myDiv");myDiv.classList.remove("highlight");}function toggleClass(){var myDiv = document.getElementById("myDiv");myDiv.classList.toggle("highlight");}function containsClass(){var myDiv = document.getElementById("myDiv");alert(myDiv.classList.contains("highlight"));}</script>
注:但是目前classList属性只有FireFox3.6+和Chrome支持。 -
参考链接:http://www.2cto.com/kf/201409/331425.html