※ ChatGPTを利用し、要約された質問です(原文:innerHTMLでドロップダウンメニューの作り方)
ドロップダウンメニューの作り方とHTML構造
このQ&Aのポイント
CSSだけで作るドロップダウンメニューのHTML構造を示しました。
配列からinnerHTMLを使用してサブメニューを生成する際に、正しく動作しない問題が発生しています。
オカシイ点を指摘するか、よりスマートな解決策を提案しています。
innerHTMLでドロップダウンメニューの作り方
CSSだけで作るドロップダウンメニューのHTMLの構造って↓みたいな感じらしいんですが、
<ul id="dropmenu">
<li><a href="#">メニュー</a>
<ul id="submenu">
<li><a href="#">サブメニュー</a></li>
<li><a href="#">サブメニュー</a></li>
<li><a href="#">サブメニュー</a></li>
<li><a href="#">サブメニュー</a></li>
</ul>
</li>
</ul>
これのサブメニューを配列からinnerHTMLで生成するときに、
var links="";
site[0]={link:'http;www',title:'アマゾン'};
site[1]={link:'http;www',title:'紀伊国屋'};
site[2]={link:'http;www',title:'ヤフーオークション'};
for(var m = 0; m < site.length; m++){
links += '<li><a href=" '+site[m]['link']+' ">'+site[m]['title']+'</a></li>';
}
document.getElementById("submenu").innerHTML=links;
<html>
<body>
<ul id="dropmenu">
<li><a href="#">メニュー</a>
<ul id="submenu">
</ul>
</li>
</ul>
</body>
</html>
で、全く動きません。勉強中の自分には何処がオカシイのかすら分かりません。
何処がオカシイか指摘してください。または、もっとスマートに出来る方法がありましたら、ヒントだけでもご提示いただけたら幸いです。
よろしくお願いいたします。
お礼
ありがとうございます!! window.onload = function(){} でスクリプトを囲った所、無事動作致しました。こんなんで4日も悩むなんてアホみたいですね・・・ でも、おかげでイベントハンドラの意味がようやく分かった気がします。