コードにいくつかの問題があります。まず、if/elseステートメントに閉じ括弧}
がありません。エラーを見るためにあなたのコンソール、F12を確認してください:コメントで上述したよう
Uncaught SyntaxError: Unexpected end of input
第二に、className
が自動的に存在せず、要素のクラスを変更しません。 className
は、DOMオブジェクトのプロパティです。これを正しく取得して設定するには、クリックされた要素を取得してclassName
プロパティを参照する必要があります。
しかし、これを行うには、クリックした要素を取得する必要があります。
onclick="toggleClass(event);"
をし、あなたの関数toggleClass
でイベントオブジェクトを参照:これを行うには、あなたのインラインクリックハンドラにevent
パラメータを追加event
オブジェクトのtarget
プロパティがクリックを見つけること
function toggleClass(evt) {
使用変数に保存してください:
var btn = evt.target;
最後に、参考文献関数内にあるclassName
すべての参照の代わりにを使用してください。
DEMO: `className`が自動的にdivタグのクラスを変更しないという変数を割り当て
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>
。少しの研究をして、それを理解します。 –
この[リンク](http://stackoverflow.com/questions/195951/change-an-elements-class-with-javascript)をご覧ください。クラス名はDOM内に存在します。あたかもあなたのコードに対してローカルであるかのように変更することはできません。 – rasmeister