0

重複の可能性:
JavaScript - ドロップダウン リストに配列を入力

私は次のselectボックスを持っています、

<select name="supplier" id="supplier"><option></option></select>

selectを使用してこのボックスの値を設定したいと思いますJavascriptJavascript変数はまたはStringですArray。つまり、その場合String、ボックスには 1 つのオプションしかありませんselect。また、配列の場合、selectボックスには複数のoptions. 誰かが解決策を見つけるのを手伝ってください。前もって感謝します....

私が試してみました

document.getElementById('supplier').value="Option 1";

しかし、それは機能していません

4

5 に答える 5

1

多くの DOM 操作を行っている場合は、jQueryを使用することをお勧めします。

$("#supplier").append('<option value=1>My option</option>');

jQuery を使用しない場合:

var select = document.getElementById("supplier");
select.options[select.options.length] = new Option('Text 1', 'Value1');
于 2012-10-19T05:35:35.863 に答える
1

これを試して:

http://jsfiddle.net/f4yEt/

function addOptions(input) {
    var sel = document.getElementById("supplier");
    if (typeof input === "string") {
        input = [input];
    }
    sel.options.length = 0;
    for (var i = 0; i < input.length; i++) {
        sel.options[sel.options.length] = new Option(input[i], input[i]);
        // This APPENDS options
    }
}

パラメーターはinput文字列または配列にすることができ (技術的には文字列のみをチェックして、反復のために配列に変換します)、配列内の各項目のオプションを動的に追加します。

于 2012-10-19T05:35:52.490 に答える
1

これを行うには、 内にノードを作成する必要があります。

var select = document.getElementById('supplier');
var option = document.createElement('option');
select.add(option);

IE/FF の違いを考慮したより大きなチュートリアルを次に示します: http://www.mredkj.com/tutorials/tutorial005.html

しかし

これにはjqueryの使用を検討します。Sujathan の答えには jquery があります。

于 2012-10-19T05:35:53.773 に答える
1

配列のjQueryメソッド

var array = ["item 1", "item 2", "item 3"];
$.each(array, function(i, value) {
  $('#supplier').append($(document.createElement('option')).attr('value', i + 1).text(value));
});​

http://jsfiddle.net/NN8KS/

于 2012-10-19T06:20:40.897 に答える
0
//var varOpt = "test";
var varOpt = new Array('test1', 'test2', 'test3');
var sel = document.getElementById('supplier');

if( typeof varOpt === 'string' ){
   sel.add(new Option(varOpt , varOpt));
} else {
    for(key in varOpt) {
        sel.add(new Option(varOpt[key], varOpt[key]));
    }
}
于 2012-10-19T05:53:41.583 に答える