以下のようなソースで、項目ごとにサブメニューの開閉をしようとしているのですが、サンプルの#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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
onclickとonmouseoverを同時に...
-
CSSのID名に配列を使えませんか?
-
jqueryを使って無駄なspanタグ...
-
アンケートサイトを作りたい!...
-
背景色を透明化
-
ダブルクォーテーションが消え...
-
Javascriptで可変のHTMLのID名...
-
getElementByIdの戻り値がnull...
-
IFRAMEの表示/非表示を切り替え...
-
自働生成される<div>タグに連番...
-
[急ぎ] videoタグで埋め込んだm...
-
バッチファイルでカウントアッ...
-
複数画像のランダム複数表示(...
-
透過pngの透明部分以外をクリッ...
-
Flickity で画像にリンクを貼る...
-
html内かscript内で画像出力。...
-
デフォルト非表示にしたい。【t...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
iframe内のリンクが飛ばないの...
-
javascriptテキストBOX色を元に...
-
createElementで作成した要素を...
-
背景色を透明化
-
IFRAMEの表示/非表示を切り替え...
-
console.log結果をhtmlで表示し...
-
removeEventListenerについて
-
表示・非表示のスクリプトで、...
-
読み込んだQRコードをフォーム...
-
jQueryでクリックされた要素のi...
-
removeAttribute()メソッドで削...
-
テキストエリア内の一部の文字...
-
jQueryのアコーディオンメニュ...
-
javascriptでpostした値が取得...
-
テキストボックスに入力された...
-
jQueryでシンプルドラッグドロ...
-
jQueryで同じid属性が複数あっ...
-
自働生成される<div>タグに連番...
-
ページ遷移後のcssプロパティ保持
おすすめ情報