

以下のようなソースで、項目ごとにサブメニューの開閉をしようとしているのですが、サンプルの#a1~に該当するID名を、配列として定義することってできませんか?
<style type="text/css"><!--
#a1 { display:none; }
#a2 { display:none; }
#a3 { display:none; }
// --></style>
<script type="text/javascript"><!--
function disp(aaa) {
obj = document.getElementById(aaa);
if( obj.style.display =="block" ){
obj.style.display ="none";
}else{
obj.style.display ="block";
}
}
function create(bbb){
document.write(bbb);
}
// --></script>
<body>
ああああ<a href="javascript:void(disp('a1'))">◎</a><div id="a1"><script type="text/javascript">create("アアアア");</script></div><br>
いいいい<a href="javascript:void(disp('a2'))">◎</a><div id="a2"><script type="text/javascript">create("イイイイ");</script></div><br>
うううう<a href="javascript:void(disp('a3'))">◎</a><div id="a3"><script type="text/javascript">create("ウウウウ");</script></div><br>
No.1ベストアンサー
- 回答日時:
idの仕様上無理です。
またやる必要もないと思います。本件の場合アンカーの直後のdivタグの表示/非表示をきりかえるという
仕組みでしたら、いかのようにしてみてはいかがでしょうか?
<style type="text/css">
.hide{ display:none; }
</style>
<script type="text/javascript">
function disp(obj) {
while(obj){
if(obj.nodeName=="DIV"){
obj.className=obj.className=="hide"?"":"hide";
obj=obj.parentNode.lastChild;
}
obj=obj.nextSibling;
}
return false;
}
</script>
ああああ<a href="#" onClick="return disp(this)">◎</a><div class="hide">アアアア</div>
いいいい<a href="#" onClick="return disp(this)">◎</a><div class="hide">イイイイ</div>
うううう<a href="#" onClick="return disp(this)">◎</a><div class="hide">ウウウウ</div>
この回答への補足
できました。ありがとうございます。
補足ですが、class="hide"内にも、非表示にするボタンを
<div class="hide">
<a href="#" onclick="return disp2(this)">×</a>
アアアア
</div>
というように設置したい場合は、どのようにfunction disp2(obj)を
記述すればよいのでしょうか…
No.3
- 回答日時:
あ、falseを返してあげてください
function disp2(obj) {
obj.parentNode.className="hide";
return false;
}
No.2
- 回答日時:
その場合、アンカーの親ノードのクラス名を変更するだけですので、
以下のようにすると効率的でしょう
function disp2(obj) {
obj.parentNode.className="hide";
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
▲▲ツリーメニューの詳細?2▲▲Ja...
-
現在、jqueryで.getする際に、...
-
IFRAMEの表示/非表示を切り替え...
-
javascriptテキストBOX色を元に...
-
リンク先でツリーを展開したままに
-
html内の記述を「表示」「隠す...
-
cssでdisplay:noneを指定した時...
-
ドロワーjsカスタマイズについて
-
取得した要素がインライン要素...
-
MAX関数を使ってからLEFT JOIN...
-
jQueryで同じid属性が複数あっ...
-
VBScriptでXMLのデータを取得す...
-
HTMLとJavaScriptで作ったタイ...
-
タブで開いてさらにタブ内をア...
-
動的にHTMLコンテンツを吹き出...
-
htmlとjavaスクリプトに詳しい...
-
removeEventListenerについて
-
javascriptでオブジェクトの重...
-
jQueryでシンプルドラッグドロ...
-
javascript ループがうごかない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
指定したパスが現URLに含まれて...
-
removeEventListenerについて
-
iframe内のリンクが飛ばないの...
-
createElementで作成した要素を...
-
IFRAMEの表示/非表示を切り替え...
-
jQueryで同じ要素の先頭へ親要...
-
ページ読み込み完了の3秒後にリ...
-
jQueryで特定id以外の下にある...
-
jQueryで同じid属性が複数あっ...
-
表示・非表示のスクリプトで、...
-
jQueryでシンプルドラッグドロ...
-
Gif画像のアニメーションが再生...
-
【HP作成】クリックすると下...
-
クリックすると下に説明文が出...
-
背景色を透明化
-
プルダウンとチェックボックス...
-
javascriptでpostした値が取得...
おすすめ情報