4

我有以下 json 对象。

var json1 = {"00" : "00", "15" : "15", "30" : "30", "45" : "45"};

我正在准备一个解析上述json的选择元素,如下所示。

var selElem = $('<select>', {'name' : name, 'grp' : grp});
for(key in json1)
    selElem.append($('<option>', {value:key, text: json1 [key]}));

但创建的选择元素如下。

<select>
    <option value="15">15</option>
    <option value="30">30</option>
    <option value="45">45</option>
    <option value="00">00</option>
</select>

这里的问题是 json1 对象包含 00 作为第一个元素,但在 select 元素中它是最后创建的。

此问题的任何解决方法或解决方案。

4

1 回答 1

6

如果要保留顺序,请使用数组:

var json1 = [{val:"00",txt:"00"}, 
             {val:"15",txt:"15"}, 
             {val:"30",txt:"30"}, 
             {val:"45",txt:"45"}];

并循环它:

var selElem = $('<select>', {'name' : name, 'grp' : grp});
for(var i=0;i<json1.length;(i+=1)){
    selElem.append($('<option>', {value:json1[i].val, text: json1[i].txt})); 
}

检查这个jsfiddle

于 2012-06-15T05:59:35.797 回答