2016-08-05 71 views
2

我收到像如何JSON結果正確追加到選擇的選項值

{ 
    "0": ["AL", "Alabama"], 
    "9": ["FL", "Florida"] 
} 

我要追加在選擇框此值,期權價值LIK

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

對於JSON格式我嘗試了下面的代碼。它是附加在所有值

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

'值完成[0]'的值,和'值[1]'文本 – billyonecan

+0

其關於處理JSON的動力/命名指數.. – Sami

回答

0

試試這個:

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

您需要了解更多一點關於JSON。你的json對象不是一個數組。它包含多個命名(名稱爲0,1)對象。這些對象中的每一個陣列

所以,你必須遍歷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

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])); 
    }); 

SE E中的fiddle

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)