jQueryを使えば簡単にできる表示のトグルですが、社内ではjQueryの使えない環境がぼちぼちあるためベーシックなJSで組まざるをえないことが結構あります。
JavaScript
function toggle($this, $target) { var elm = document.getElementById($target); var style = elm.currentStyle || document.defaultView.getComputedStyle(elm, ''); if (style.display == 'none') { elm.style.display = 'block' } else { elm.style.display = 'none' } if ($this.className.indexOf('active') > 0) { $this.className = $this.className.replace(' active', ''); } else { $this.className += ' active'; } }
これを使う場合は下記のようなHTMLで記述します。
<a href="javascript:void(0)" onclick="toggle(this,'targetID')">
ターゲットのdisplayの値を調べ、noneであればblock、blockであればnoneにするという簡素なものです。
クリックされた<a>タグ自身をthisで投げているのは、この<a>タグ自身にもクリックされた元としてクラス「active」を付与してスタイルを変更するためです。