我有以下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()手动解析。