【實踐】用js 實現 jq 的removeClass 方法


HTML 代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js removeClass 應用</title>
    <style type="text/css">
     div{
         width: 100px;
         height: 100px;
         background-color: #000;
     }
     .test1{
         border:1px solid red;
     }
     .test2{
         border: 5px solid #ff0;
     }
     .test3{
         border: 8px solid #f00;
     }
     .test4{
         border: 10px solid #999;
     }
     .test5{
         border: 12px solid #ccc;
     }
    </style>
</head>
<body>
  <div class="test1 test2 test3 test4 test5"></div>

 

js代碼

<script type="text/javascript">
  window.onload = function(){
    var div = document.getElementsByTagName('div')[0];
    removeClass(div,"test2");





      function removeClass(elem,classname){
             //首先進行初次判斷目標元素是否存在類名
             //如果有開始執行具體操作
             //如果沒有調用控制台報錯
             if(elem.className != ""){
                 //先把目標元素的所有類名保存在數組中
                 //類名的存在是以空格隔開的 所以調用split()方法傳入一個空格參數
                var allClassName = elem.className.split(" ");
                console.log("第一次賦值后class數量為:" + allClassName);
                var result;//完成操作后保存類名(在以后調用)
                var listClass;//保存修改過后的數組

                //1.首先遍歷一次所有類名
                for (var i = 0; i < allClassName.length; i++) {
                    if(allClassName[i] == classname){
                        //如果在所有類名里面找到要刪除的類名執行如下操作
                        //將對應的類名刪除,調用splice方法,第一個參數是要刪除元素的索引
                        //第二個參數是刪除元素的個數
                        allClassName.splice(i,1);
                        
                    }

                }
                
                //把 allClassName 數組賦值給 listClass 數組
                listClass = allClassName;
                //遍歷listClass 數組
                for (var j = 0; j < listClass.length; j++) {
                    //把第一個數組元素賦值給 result時要直接賦值不然會出現undefined
                    //之后加上空格因為類名的存在形式就是用空格分隔的
                    if (j == 0) {
                        result = listClass[j];
                        result += " ";
                    }else{
                        //除第一個以外的元素就可以用 加法運算保存在result字符串里面
                        result += listClass[j];
                        result += " ";
                    }
                }
                
                console.log("處理后的listClass數量" + listClass);
                elem.className = result;//將目標元素的類名重新被 result 覆蓋掉
                
             }else{
                 console.log("目標元素沒有存在的類名")
             }
             

        }
  }
 </script>

 


免責聲明!

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



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