如何将json结果正确附加到选择选项值

时间:2016-08-05 09:44:33

标签: jquery json select

我收到像

这样的json格式
{
    "0": ["AL", "Alabama"],
    "9": ["FL", "Florida"]
}

我想在选择框中添加此值,选项值为lik

<option value="AL">Alabama</option>
<option value="FL">Florida</option>.

为此,我尝试了下面的代码。它附加了所有值

success: function(json) {
    jQuery('#stateId').html('');
    jQuery.each(json, function(i, value) {
        jQuery('#stateId').append(jQuery('<option>').text(value).attr('value', value));
    });
}

4 个答案:

答案 0 :(得分:1)

var json = {
    "0": ["AL", "Alabama"],
    "9": ["FL", "Florida"]
};

    jQuery('#stateId').html('');
    jQuery.each(json, function(i, value) {

    jQuery('#stateId').append(jQuery('<option>').text(value[1]).attr('value', value[0]));
    });

请参阅fiddle

答案 1 :(得分:0)

试试这个:

success: function(json) {
    jQuery('#stateId').html('');
    jQuery.each(json, function(i, value) {
        jQuery('#stateId').append(jQuery('<option>').text(value).attr('value', value[i]));
    });
}

答案 2 :(得分:0)

您需要了解更多有关json的信息。您的json对象不是数组。它包含多个命名(命名为01)对象。这些对象中的每一个都是一个数组

所以你必须遍历json来获取每个命名索引,然后在该索引处获取对象,你必须使用jsonObject[index]而不是jsonObject.index

现在每个对象都是两个项目的数组,您可以将它们用作文本和值,如

for(var index in originalJson){
  var val = originalJson[index]; //it is same like originalJson.prop but     
  jQuery('#stateId').append('<option />').text(val[0]).attr('value',val[1]);
}

Working Plunker

答案 3 :(得分:0)

也可以这样做

d = {
    "0": ["AL", "Alabama"],
    "9": ["FL", "Florida"]
}
var str = "";
$.each(d, function(i,obj){
      str += "<option value='"+obj[0]+"'>"+obj[1]+"</option>";      
})
$("#selDropDown").html(str)