2017-02-03 81 views
-4
<div class="button button1" onclick="toggleClass();">Stay Updated</div> 

    <script> 
     function toggleClass(){ 
      if(className == "button button1"){ 
        className = "info"; 
      } else { 
        className = "button button 1"; 
} 

    </script> 

試圖改變div的類在點擊div。 div的意思是像一個按鈕,應該被另一個div類替換。這是我的編碼,請幫助。提前致謝。不知道爲什麼這不起作用

+0

分配一個名爲'className'不會自動改變類div標籤的變量。做一點研究,你會發現它。 –

+0

你可能想看看這[鏈接](http://stackoverflow.com/questions/195951/change-an-elements-class-with-javascript)。類名稱存在於DOM中。您不能將其更改爲您的代碼的本地代碼。 – rasmeister

回答

0

您的代碼有幾個問題。首先,您在if/else語句中丟失了一個右括號}。檢查您的控制檯,F12看到錯誤:

Uncaught SyntaxError: Unexpected end of input

其次,如上面的評論中指出,className不會自動存在,並不會改變元素的類。 className是DOM對象的一個​​屬性。您需要獲取點擊元素並引用className屬性來正確檢索和設置。

然而,在你做到這一點之前,你需要獲得點擊元素。要做到這一點,event參數添加到您的在線點擊處理程序:

onclick="toggleClass(event);" 

,並引用該事件對象在函數toggleClass

function toggleClass(evt) { 

使用event對象的target屬性查找被點擊元素並將其保存到變量中:

var btn = evt.target; 

最後,參考文獻btn.className代替您在函數中使用的所有className引用。

DEMO:

function toggleClass(evt) { 
 
    var btn = evt.target; 
 
    
 
    if(btn.className == "button button1") { 
 
     btn.className = "info"; 
 
    } else { 
 
     btn.className = "button button1"; 
 
    } 
 
}
div { 
 
    color: #fff; 
 
} 
 
div.button.button1 { 
 
    background: blue; 
 
} 
 
div.info { 
 
    background: green; 
 
}
<div class="button button1" onclick="toggleClass(event);">Stay Updated</div>

相關問題