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>