您的代碼有幾個問題。首先,您在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>
分配一個名爲'className'不會自動改變類div標籤的變量。做一點研究,你會發現它。 –
你可能想看看這[鏈接](http://stackoverflow.com/questions/195951/change-an-elements-class-with-javascript)。類名稱存在於DOM中。您不能將其更改爲您的代碼的本地代碼。 – rasmeister