• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScriptでテキストを表示・非表示・・・)

JavaScriptでテキストの表示・非表示を切り替える方法

このQ&Aのポイント
  • JavaScriptを使用してテキストをボタンを押すと表示/非表示と切り替えたいです。
  • 試した結果、一部のテキストしか表示/非表示とならずに困っています。
  • divタグにidを付けて表示/非表示を制御する方法を試しましたが、うまくいきませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

HTMLでは複数の要素に同じIDをつけてはいけないことになっています。 そのため、document.getElementByIdを使用しても1つめの要素しか取得できません。 > div idがそれぞれの部分に必要かと思い、div id="○○a"、div id="○○b"という風に付けましたがうまくいきませんでした。 ……とのことですが、 それぞれに違うIDをつけ、 document.getElementById("○○a").style.display="none"; document.getElementById("○○b").style.display="none"; と、それぞれの要素に対してスタイルを設定することで、期待した動作になるはずです。 表示・非表示を切り替えるブロックがたくさんある場合は一つ一つにIDをつけるのは大変ですので、 IDではなくname属性(こちらは他要素との重複可)とdocument.getElementsByNameなどを使う方が楽になります。

earobaiku
質問者

お礼

遅くなりましたがお忙しい中、有難うございました。 無事に表示/非表示と切り替える事が出来ました。 大変助かりました! 有難うございます。

earobaiku
質問者

補足

お二方とも丁寧に教えて頂いたのでベストアンサーをどちらにすべきか迷いましたが、今回は先に回答頂いていたPicosoftさんの回答をベストアンサーに選ばせて頂きました!有難うございました。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

文章群のうちのある部分をセットで非表示にしたいということと解釈しました。 各部分にそれぞれの表示/非表示設定を行なう処理で実現するのも、もちろん良いのですが、必ずセットで操作をおこなうことが決まっているのなら、セットで扱えるようにしておくほうが簡単そうに思います。 例えばCSSで div.disp p { margin:0; } div.erase p.target { display:none; } のようにしておいて、 <div class="disp">  <p>あいうえおかきくけこ  <p class="target">サシスセソタチツテト  <p> なにぬねのはひふへほ   <p class="target">マミムメモヤユヨ </div> などとしておけば、<div class="disp erase">のようにeraseクラスの設定/非設定で、そのdiv内の対象要素の表示/非表示をまとめて切り替えることが可能になります。 (文章としてご質問にp(段落)が適切なのかがわかりませんが、部分の場合は<span>等を用いて同様のことが可能かと…)

earobaiku
質問者

お礼

遅くなりましたがお忙しい中、有難うございました。 無事に表示/非表示と切り替える事が出来ました。 大変助かりました! 有難うございます。

earobaiku
質問者

補足

お二方とも丁寧で初心者の私でも理解しやすい説明をして頂いたので、どちらの方の回答をベストアンサーにしようか迷いましたが、今回は先に回答頂いていたPicosoftさんの回答をベストアンサーに選ばせて頂きました。fujillinさん、有難うございました!

関連するQ&A