• ベストアンサー

連想配列を使ってコンボボックスを設定したい

JavaScriptの初心者です。 var cd_0001 = new Object(); cd_0001["0001"]="アフリカ"; cd_0001["0002"]="南アメリカ"; cd_0001["0003"]="カリブ海/南アメリカ"; cd_0001["0004"]="アジア"; cd_0001["0005"]="オセアニア"; 上記のような連想配列があります。 これを使って以下のようなコンボボックスを 作りたいのです。 <select name="cmb"> <option value="0001" selected>アフリカ</option> <option value="0001">フィルター</option> <option value="0002">南アメリカ</option> <option value="0003">カリブ海/南アメリカ</option> <option value="0004">アジア</option> <option value="0005">オセアニア</option> </select> コンボボックスを作成する部分はネットで検索し 見つけました。 ですが、連想配列から全てのKEYと値を 取得することができません。 どのようにすれば取得することができるのでしょうか? 意味わかりますか? 説明がわかりにくく申し訳ございません。 よろしくお願いします。

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

for in を使ってできます。 var cd_0001 = new Object(); cd_0001["0001"]="アフリカ"; cd_0001["0002"]="南アメリカ"; cd_0001["0003"]="カリブ海/南アメリカ"; cd_0001["0004"]="アジア"; cd_0001["0005"]="オセアニア"; for(var X in cd_0001) { alert(X + cd_0001[X]) }

参考URL:
http://www.tohoho-web.com/js/statement.htm#stFor
rabu_chihaha
質問者

お礼

ありがとうございました。 また一歩前進しました

その他の回答 (2)

  • Manuel
  • ベストアンサー率43% (43/98)
回答No.3

<script language="javascript" type="text/javascript"> <!-- var cd_0001 = new Object(); cd_0001["0001"] = "アフリカ"; cd_0001["0002"] = "南アメリカ"; cd_0001["0003"] = "カリブ海/南アメリカ"; cd_0001["0004"] = "アジア"; cd_0001["0005"] = "オセアニア"; function menuCreate() { var str = '<select name="cmb">'; for(var X in cd_0001) { str += '<option value="' + X + '">' + cd_0001[X] + '</option>'; } str += '</select>'; document.write(str); } //--> </script> でコンボボックスを入れたいところに <script language="javascript" type="text/javascript"><!-- menuCreate(); //--></script> と記述する。

rabu_chihaha
質問者

お礼

お礼が遅くなってすみません。 詳しい回答ありがとうございました

  • Manuel
  • ベストアンサー率43% (43/98)
回答No.2

ただの配列(Array)じゃだめなんですか?

関連するQ&A