我有以下jQuery代码。我可以从服务器获得以下数据[{“value”:“1”,“label”:“xyz”},{“value”:“2”,“label”:“abc”}]。如何迭代这个并填充id = comboBox的选择框
$.ajax({
type: 'POST',url: "<s:url value="/ajaxMethod.action"/>",data:$("#Locid").serialize(),success: function(data) {
alert(data.msg);
//NEED TO IteraTE data.msg AND FILL A DROP DOWN
},error: function(XMLHttpRequest,textStatus,errorThrown) {
alert(textStatus);
},dataType: "json"
});
还有使用.ajax和$ .getJSON有什么区别。
解决方法
这应该做的诀窍:
$($.parseJSON(data.msg)).map(function () {
return $('<option>').val(this.value).text(this.label);
}).appendTo('#comboBox');
这里是ajax和getJSON(从jQuery documentation)之间的区别:
[getJSON] is a shorthand Ajax function,which is equivalent to:
06001
编辑:清楚,部分问题是服务器的响应返回一个json对象,看起来像这样:
{
"msg": '[{"value":"1","label":"xyz"},{"value":"2","label":"abc"}]'
}
…所以msg属性需要使用$ .parseJSON()手动解析。