スタートページJavascript

表示・非表示


記述した場所で表示・非表示にする

HTMLのある部分を表示・非表示反転をさせたいことがよくあります。
次の[解答表示]の部分をクリックしてください。解答が表示されます。クリックを繰り返すと表示・非表示が反転します。

次の計算で正しいものはどれか。
  ア 1+1=2
  イ 1+1=3
[解答表示]

<script type="text/javascript">
    function 表示反転(対象ID) {                                         // A
        if (document.getElementById(対象ID).style.display == "none") {  // B
            document.getElementById(対象ID).style.display = "block";
        }
        else {
            document.getElementById(対象ID).style.display = "none";     // C
        }
    }
</script>

<a href="Javascript:表示反転('解答');">[解答表示]</a>           <!-- D --> 
<div id="解答" style="display:none">                                <!-- E -->
<p>正解は[ア]です。</p>
</div>

異なる場所に表示

上の例では、非表示になっている部分を、その場所で表示する方法でした。
 ここでは、非表示の内容を異なる場所に表示することを考えます。

実例:次のボタンをクリックすると、右側の「表示場所です」に文章が表示されます。



   
表示場所です

この仕組みは次のようになっています。
上の文章は下の灰色の場所に記述されています。
アにより、その下のdiv(非表示になっている)部分が指定され、イの「説明内容」に渡されます。
イの右辺は、「説明1の内容です。」になるので、イの左辺は、次のようになります。
   document.getElementById("表示場所").innerHTML = "説明1の内容です。";
これにより、ウの「表示場所です」が「説明1の内容です。」に変更されます。

function 表示(内容) {
    document.getElementById("表示場所").innerHTML = document.getElementById(説明内容).innerHTML;  ・・・イ
}
-------
←<button onClick="表示('説明1')">説明1</button>  ・・・ア
<div id="説明1" style="display: none">
説明1の内容です。
</div>                    <div id="表示場所">表示場所です</div>  ・・・ウ
←<button onClick="表示('説明2')">説明2</button>
<div id="説明2" style="display: none">
説明2の内容です。
</div>