1

あなたの助けが必要です。

以下に、配列からデータを読み取り、選択ボックスにオプション値を動的に追加する次の関数を示します。

追加するテキストとオプション値を指定できるように配列を変更する方法はありますか?

ABC,"testing"
DEF,"the system"
GHI,"further testing"
JKL,"desired results"

したがって、選択ボックスは次のようになります。

<select>
<option value="testing">ABC</option>
<option value="the system">DEF</option>
<option value="further testing">GHI</option>
<option value="desired results">JKL</option>
</select>

すなわち。

var y = [
"ABC",
"DEF",
"GHI",
"JKL"
]
for (var i = 0; i < y.length; i++ ){
    document.getElementById('select1').options[i]=new Option(y[i], y[i])
}
4

3 に答える 3

2

これを試して:

var arr = [],
    key,
    options = {
        'value1': 'text1',
        'value2': 'text2',
        'value3': 'text3'
    };

for(key in options) {
    if(options.hasOwnProperty(key)) {
        arr.push(['<option value="', key, '">', options[key], '</option>'].join(''));
    }
}
document.getElementById('select1').innerHTML = arr.join('');
于 2013-11-05T15:51:39.747 に答える
2

文字列の配列をオブジェクトの配列に変更する必要があります。

var y = [
    {toDisplay: "ABC", value: "testing"},
    {toDisplay: "DEF", value: "the system"},
    {toDisplay: "GHI", value: "further testing"},
    {toDisplay: "JKL", value: "desired results"}
];

for (var i = 0; i < y.length; i++) {
    document.getElementById('select1').options[i] = new Option(y[i].toDisplay, y[i].value);
}

もちろん、一貫性がある限り、オブジェクト内のパラメーターを好きなように (たとえばtextの代わりに) 呼び出すことができます。toDisplay

于 2013-11-05T15:51:58.307 に答える
0

これを行う別の方法を次に示します。

function populateOption(name, value){

    select = document.getElementById('selectbox');


    var opt = document.createElement('option');
    opt.value = value;
    opt.innerHTML = name;
    select.appendChild(opt);


}

text = {'ABC' : "testing",
        'DEF':"the system", 
        'GHI':"further testing",
        'JKL':"desired results"}
for(var key in text){
    populateOption(key, text[key]);
}

作業コードは次のとおりです。

フィドル

于 2013-11-05T16:04:09.150 に答える