0

スクリプトに次のコードがあります。

    var myobject = {
    'Any' : 'Any',
    '1' : 'One',
    '2' : 'Two',
    '3' : 'Three',
    '4' : 'Four',
    '5' : 'Five'
};

var select = document.getElementById("TypeList1");
for(index in myobject) {
    select.options[select.options.length] = new Option(myobject[index], index);
}

私はこのようなドロップダウンを取得しています:

<select id="TypeList1" class="custom1 interactive1">
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
  <option value="Any">Any</option>
</select>

しかし、私はこのように生成したい:

<select id="TypeList1" class="custom1 interactive1">
  <option value="Any">Any</option>  
  <option value="1">One</option>
  <option value="2">Two</option>
  <option value="3">Three</option>
  <option value="4">Four</option>
  <option value="5">Five</option>
</select>

アイデアや提案はありますか?ありがとう。

4

3 に答える 3

4

インデックスに従って出力する連想 (つまり、インデックスのない) 構造 (オブジェクト) に依存しています。変数indexは、実際にはインデックスではなく、プロパティの名前付きキーを保持します。

代わりに、インデックス付きの配列を使用してください。配列内の各エントリは、オプションの値とテキストを含むサブ配列です。

var arr = [
    ['Any', 'Any'],
    ['1', 'One'],
    ['2', 'Two'],
    ['3', 'Three'],
    ['4', 'Four'],
    ['5', 'Five']
];

var select = document.getElementById("TypeList1");
for (var i=0, len = arr.length; i<len; i++)
    select.options[select.options.length] = new Option(arr[i][1], arr[i][0]);
于 2013-09-05T10:16:16.193 に答える
0

using jQuery You can do this as below.

Change your object as below,

var myobject = {
    '1' : 'One',
    '2' : 'Two',
    '3' : 'Three',
    '4' : 'Four',
    '5' : 'Five'
};
$("<option></option>", 
     {value: "Any", text: "Any"})
    .appendTo('#TypeList1');

$.each(myobject , function(i , v){
  $("<option></option>", 
     {value: i, text: v})
    .appendTo('#TypeList1');
});

Live Demo

于 2013-09-05T10:13:49.273 に答える