私は今現在HPを作成しているのですが、その中の特定のページでテキストをクリックしたら表示/非表示の切り替えをしたいと考えてます。
表示/非表示自体は検索して出てきたオープンソースを拝借したら出来ました。
ソースは下記のように記述してます。
しかし、既存の状態だと『テキスト1』をクリックして表示させたらもう一度『テキスト1』をクリックしない限り非表示にはなりません。
『テキスト1』をクリックして表示している状態で『テキスト2』をクリックしたら自動的に『テキスト1』の表示されてる部分を非表示しにしたいのですが。
<head>
<SCRIPT type="text/JavaScript">
<!--
function showHide(targetID) { //functionの宣言。受けとったIDは変数targetIDに格納。
if( document.getElementById(targetID)) { //指定のIDのついたオブジェクトがあったら処理する
//指定されたIDのstyle.displayがnoneなら
if( document.getElementById(targetID).style.display == "none") {
//blockに変更する
document.getElementById(targetID).style.display = "block";
} else { //noneでなければ、つまりblockなら
//noneにする
document.getElementById(targetID).style.display = "none";
}
}
}
//-->
</SCRIPT>
</head>
<body>
<a href="#" onClick="showHide('SH-001');return false;">テキスト1</a>
<a href="#" onClick="showHide('SH-002');return false;">テキスト2</a>
<div id="SH-001" style="display: none">テキスト1をクリックしたら表示される部分</div>
<div id="SH-002" style="display: none">テキスト2をクリックしたら表示される部分</div>
</body>
Javascriptについてはまだ知識がなく解決方法が皆目見当もつきません。
ご存知の方いらっしゃいましたらご教示ください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こういうことでしょうか?
<head>
<SCRIPT type="text/JavaScript">
<!--
var objTextIDArray = new Array("SH-001","SH-002");
function showHide(targetID) { //functionの宣言。受けとったIDは変数targetIDに格納。
if( document.getElementById(targetID)) { //指定のIDのついたオブジェクトがあったら処理する
//指定されたIDのstyle.displayがnoneなら
if( document.getElementById(targetID).style.display == "none") {
//blockに変更する
for(var i = 0; i < objTextIDArray.length; i++)
if(document.getElementById(objTextIDArray[i]))
document.getElementById(objTextIDArray[i]).style.display = "none";
document.getElementById(targetID).style.display = "";
} else { //noneでなければ、つまりblockなら
//noneにする
document.getElementById(targetID).style.display = "none";
}
}
}
//-->
</SCRIPT>
</head>
<body>
<a href="#" onClick="showHide('SH-001');return false;">テキスト1</a>
<a href="#" onClick="showHide('SH-002');return false;">テキスト2</a>
<div id="SH-001" style="display: none">テキスト1をクリックしたら表示される部分</div>
<div id="SH-002" style="display: none">テキスト2をクリックしたら表示される部分</div>
</body>
nicorusさん
ご回答ありがとうございました。
教えていただいたようにしたら無事できました。
助かりました。本当にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
変数内容をHTML内で表示する方法
-
javascriptでURLにマウスオーバー
-
document.getElementById( ).st...
-
表示・非表示のスクリプトで、...
-
取得した要素がインライン要素...
-
dblclickでdiv要素を一回だけ作...
-
マウスオーバー、アウト時の背...
-
プルダウンとチェックボックス...
-
removeAttribute()メソッドで削...
-
iframe内のリンクが飛ばないの...
-
HTMLとJavaScriptで作ったタイ...
-
jTweetsAnywhereでハッシュタグ...
-
ボタンを押せば、画面が切り替...
-
jqueryを使って無駄なspanタグ...
-
createElementで作成した要素を...
-
javascriptテキストBOX色を元に...
-
【jquery】スクロールで背景画...
-
javascriptでpostした値が取得...
-
タブで開いてさらにタブ内をア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
createElementで作成した要素を...
-
removeEventListenerについて
-
IFRAMEの表示/非表示を切り替え...
-
タブで開いてさらにタブ内をア...
-
変数名をどのようにつけるのが...
-
クリックで色変更後に既に変更...
-
表示・非表示のスクリプトで、...
-
HTMLとJavaScriptで作ったタイ...
-
console.log結果をhtmlで表示し...
-
jQueryでクリックされた要素のi...
-
HTMLタグに複数のクラスを設定...
-
指定したパスが現URLに含まれて...
-
iframe内のリンクが飛ばないの...
-
背景色を透明化
-
テキストエリア内の一部の文字...
-
変数内容をHTML内で表示する方法
-
classの中の<a>タグにidを追加
おすすめ情報