我有JSON数据如下
{"4":"Bangles","2":"Rings"}
我正在尝试迭代内容以填充下拉列表
$("#ProductProductTypeId").change(function(){
var product_type_id = $(this).val();
console.log(product_type_id);
$.ajax({
type: "get",
url: "/alankruti/admin/product_categories/get_category/"+product_type_id,
//data: country_id,
success:function(data){
console.log(data);
var options = '';
$.each(data, function (key,value) {
console.log(key);
console.log(value);
options += '<option value="'+key+'">'+value+'</option>';
console.log(key + " " +value)
});
}
});
});
错误:
答案 0 :(得分:2)
首先使用jQuery.parseJSON
从数据字符串创建一个jSON对象。然后,您可以使用$.each
进行迭代。
success:function(data){
// create json object from data (string)
jsonObj = jQuery.parseJSON( data);
console.log(data);
var options = '';
// iterate through json
$.each(jsonObj , function (key,value) {
console.log(key);
console.log(value);
options += '<option value="'+key+'">'+value+'</option>';
console.log(key + " " +value)
});
}
答案 1 :(得分:1)
带上你的json:
{"4":"Bangles","2":"Rings"}
像这样的简单each()
循环有效:
$.each(items, function(k, values) {
console.log(k);
console.log(values);
});
简单地说,你所要做的就是
var options;
$.each(items, function(k, values) {
options += "<option value='" + k + "'>" + values + "</option>";
});
// then append options to select...
答案 2 :(得分:0)
同意dknaack的回答。或者,尝试设置dataType:&#34; json&#34;在ajax。这确保了在successHandler中,数据对象是一个json对象。
$.ajax({
type: "get",
dataType : "json",
...