html5新增操作類名方式 classList


如果一個元素有多個類名,要如何刪除呢,jqeury提供了removeClass()這個api,如果不用插件,自己封裝,可以這樣

 1         function removeClass(elm,removeClassName) {  2             var classNames = elm.className.split(/\s+/);//首先渠道類名字符串並拆分成數組
 3             var pos = -1, i, len;  4             for (i = 0, len = classNames.length; i < len; i++){//找到要刪的類名
 5                 if(classNames[i] == removeClassName) {  6                     pos = i;  7                     break;  8  }  9  } 10             if(pos == -1){ 11                 throw Error("沒有這個類名"); 12  } 13             classNames.splice(i,1);//刪除類名
14             elm.className = classNames.join(" ");//把剩下的類名拼成字符串重新設置
15         }

 

當然html5新增了操作類名的方式 classList 他有4個屬性

add(value):將給定的字符串值添加到列表中。如果值已經存在,就不添加了。 contains(value):表示列表中是否存在給定的值,如果存在則返回 true,否則返回 false。 remove(value):從列表中刪除給定的字符串。 toggle(value):如果列表中已經存在給定的值,刪除它;如果列表中沒有給定的值,添加它

下面是使用示例,非常方便

//刪除"disabled"類
div.classList.remove("disabled"); //添加"current"類
div.classList.add("current"); //切換"user"類
div.classList.toggle("user"); //確定元素中是否包含既定的類名
if (div.classList.contains("bd") && !div.classList.contains("disabled")){ //執行操作
) //迭代類名
for (var i=0, len=div.classList.length; i < len; i++){ doSomething(div.classList[i]); }

 但是支持瀏覽器比較少, ie10+,Firefox 3.6+Chrome。  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM