--- title: HTMLSelectElement.add() slug: Web/API/HTMLSelectElement/add tags: - API - HTML DOM - HTMLSelectElement - メソッド - リファレンス browser-compat: api.HTMLSelectElement.add translation_of: Web/API/HTMLSelectElement/add --- {{APIRef("HTML DOM")}} **`HTMLSelectElement.add()`** メソッドは、この `select` 要素が持つ `option` 要素の集合に要素を追加します。 ## 構文 ```js collection.add(item[, before]); ``` ### 引数 - _item_ は {{domxref("HTMLOptionElement")}} または {{domxref("HTMLOptGroupElement")}} です - _before_ は省略可能で、集合内の要素または _long_ 型の位置を指定し、_item_ を挿入する直後のい位置を表します。この引数が `null` (または存在しない位置) であった場合、新しい要素は集合の末尾に追加されます。 ### 例外 - `HierarchyRequestError` {{DOMxRef("DOMException")}} - : このメソッドに渡された _item_ が {{domxref("HTMLSelectElement")}} の祖先であった場合に発生します。 ## 例 ### 一から要素を作成 ```js var sel = document.createElement("select"); var opt1 = document.createElement("option"); var opt2 = document.createElement("option"); opt1.value = "1"; opt1.text = "Option: Value 1"; opt2.value = "2"; opt2.text = "Option: Value 2"; sel.add(opt1, null); sel.add(opt2, null); /* 理想的には下記のように生成します。 */ ``` before 引数は省略可能ですので、以下のようにすることもできます。 ```js ... sel.add(opt1); sel.add(opt2); ... ``` ### 既存の集合に追加 ```js var sel = document.getElementById("existingList"); var opt = document.createElement("option"); opt.value = "3"; opt.text = "Option: Value 3"; sel.add(opt, null); /* 以下のような select オブジェクトがあったとします。 すると、次のように変わります。 */ ``` before 引数は省略可能ですので、以下のようにすることもできます。 ```js ... sel.add(opt); ... ``` ### 既存の集合への挿入 ```js var sel = document.getElementById("existingList"); var opt = document.createElement("option"); opt.value = "3"; opt.text = "Option: Value 3"; sel.add(opt, sel.options[1]); /* 以下のような select オブジェクトがあったとします。 すると、次のように変わります。 */ ``` ## 仕様書 {{Specifications}} ## ブラウザーの互換性 {{Compat}}