1

所以我有一个$.post,返回一些json_encode($array);

$array是一维的,它包含数字:2、4、6。

所以现在data持有 json 数据,我该如何循环并为我的#time选择器设置选项?和value=""显示文本应该是数组中的数字。

4

3 回答 3

1

像这样的东西应该工作:

$.each(data, function(i, val) {
    $("<option />").text(val).val(val).appendTo("#time");
}​);​

演示:http: //jsfiddle.net/tmSqR/


更新。您的数据未从字符串格式解码为 JSON。在进行迭代之前添加dataType属性$.post或使用。data = JSON.parse(data)

演示:http: //jsfiddle.net/tmSqR/1/

于 2012-06-16T23:03:58.397 回答
1

也许你想这样做:

var s = $('select#time');
s.empty();
$.each(data, function(key, value){
  s.append($("<option />").text(value).val(key);
  //or 
  s.append($("<option value="key">value</option>"); 
});
于 2012-06-16T23:12:30.410 回答
1

实际上json_encode($array)from返回的数据PHP是 javascript 中的字符串,需要先转换为对象才能循环,所以$.parseJSON在循环开始之前使用

var obj=$.parseJSON(data);
$.each(obj, function(k, v) {
    $("<option />").text(v).val(v).appendTo("#time");
});​

演示。

于 2012-06-16T23:18:31.980 回答