こんにちは、Ryohei(@ityryohei)です!

本記事では、JavaScriptで配列からセレクトボックスを生成する方法をご紹介しています。

JavaScriptで配列からセレクトボックスを生成するにはどうすればいいんだろう?

上記の疑問にお答えします。

では、解説していきます。

select要素とoption要素を生成する

配列からセレクトボックスを生成します。select要素とoption要素を生成し、body要素の末尾に追加します。

JavaScript

const array = ['リンゴ', 'ゴリラ', 'ラッパ', 'パセリ'];
const select = document.createElement('select');

array.forEach((element)=>{
    
    // option要素を生成
    let option = document.createElement('option');
    
    // option要素のテキストを設定
    option.text = element;
    // option要素の値を設定
    option.value = element;
    
    // 生成したoption要素をselect要素に追加
    select.add(option);
});

// select要素をbody要素の末尾に追加
document.body.appendChild(select);

実行結果

<select>
    <option value="リンゴ">リンゴ</option>
    <option value="ゴリラ">ゴリラ</option>
    <option value="ラッパ">ラッパ</option>
    <option value="パセリ">パセリ</option>
</select>

select要素に生成したoption要素を追加する

前項ではselect要素から生成する方法をご紹介しましたが、本項では設置済みのselect要素を取得し、生成したoption要素を追加します。

HTML

<select name="shiritori"></select>

JavaScript

const array = ['リンゴ', 'ゴリラ', 'ラッパ', 'パセリ'];
const select = document.querySelector('select[name="shiritori"]');

array.forEach((element)=>{
    
    // option要素を生成
    let option = document.createElement('option');
    
    // option要素のテキストを設定
    option.text = element;
    // option要素の値を設定
    option.value = element;
    
    // 生成したoption要素をselect要素に追加
    select.add(option);
});

実行結果

<select name="shiritori">
    <option value="リンゴ">リンゴ</option>
    <option value="ゴリラ">ゴリラ</option>
    <option value="ラッパ">ラッパ</option>
    <option value="パセリ">パセリ</option>
</select>

参考:https://developer.mozilla.org/ja/docs/Web/API/HTMLSelectElement/add

最後に

配列やJSONからセレクトボックスを生成するケースが多々あります。本記事でご紹介した内容はどちらもスタンダードな生成方法となっておりますので、ぜひ覚えておいてくださいね。

以上、JavaScriptで配列からセレクトボックスを生成する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。

JavaScriptを基礎からしっかりと学びたい方へ

下記の参考書がおすすめです。私がJavaScript入門時に購入した書籍で、基礎から応用まで多様なサンプルを用いて解説されています。ページ数は多いですが、内容が伴っているのですらすら読めます。腰を据えて学びたい方に最良の一冊となっています。