2014-10-07 76 views
0

這裏是我的代碼的主要部分試圖切換一個p標籤(信息)上的類點擊我的按鈕(btn)。我不確定我做錯了什麼。我從來沒有使用過className屬性,所以我不確定我是否缺少一些簡單的東西,或者我的邏輯嘗試嘗試這樣做時是否存在根本錯誤。我的Javascript不改變className屬性

var handler = function(event){ 
    if(info.className === 'on'){ 
    info.className='off'; 
    }else{ 
    info.className='on'; 
    } 
}; 

btn.addEventListener('click', handler); 
+0

凡'info'聲明? – tymeJV 2014-10-07 23:18:21

+1

我無法重現您的問題。 [這是一個jsFiddle,演示了你的代碼工作](http://jsfiddle.net/peterolson/4cmzLubh/1/)。 – 2014-10-07 23:19:00

+0

我用document.getElementById獲取信息和btn。我有這個工作使用不同的方法,只是改變info.style.display,但我想弄清楚如何通過改變className來實現這一點。 – mikeLspohn 2014-10-07 23:20:04

回答

1

你的代碼工作得很好。您可以運行下面的代碼片段來查看它的工作原理。

var btn = document.getElementById("btn"), 
 
    info = document.getElementById("info"); 
 

 
var handler = function (event) { 
 
    if (info.className === 'on') { 
 
     info.className = 'off'; 
 
    } else { 
 
     info.className = 'on'; 
 
    } 
 
}; 
 

 
btn.addEventListener('click', handler);
.on { 
 
    background-color: red; 
 
} 
 
.off { 
 
    background-color: green; 
 
}
<button id=btn>Button</button> 
 
<p id=info>Info</p>

+0

謝謝。我在我的實際代碼中使用了一個大括號。我以爲我做錯了什麼。感謝您使用本網站上的運行示例功能,我還沒有看到,所以這對於瞭解有關內容非常有用。 – mikeLspohn 2014-10-07 23:31:21

0

什麼是信息它是一個ID?如果是的話,如果你使用簡單的JavaScript,然後將其稱爲document.getElementById('信息')或如果jQuery然後$('#信息')。

但是,它也聽起來像所有名稱元素和類名(信息,開,關)作爲內建關鍵字出現。更好地改變他們的名字,然後重試類似infoElem,onClass,offClass的類,並且這些類應該在樣式表中再次類似地重命名。