jquery用json数据填充下拉列表

标签 jquery json

我有以下 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');

这是 ajaxgetJSON 之间的区别(来自 jQuery documentation ):

[getJSON] is a shorthand Ajax function, which is equivalent to:

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});

编辑:需要明确的是,部分问题是服务器的响应返回了一个看起来像这样的 json 对象:

{
    "msg": '[{"value":"1","label":"xyz"}, {"value":"2","label":"abc"}]'
}

...所以需要使用 $.parseJSON() 手动解析 msg 属性。

关于jquery用json数据填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5952284/

相关文章:

jquery - css 的流体内容布局问题

javascript - 功能仅适用于 $ ('#element' ).click()

json - Grails 2.3 Controller 方法返回 JSON 在单元测试中返回 null

android - 如何等待多个异步任务完成他们的工作?

java - 将多 Json 解析为 Java/Android 时出现问题

javascript - 我可以在我的 github 页面站点中提供 javascript 文件而不是 index.html 吗?

javascript - AJAX 中的 Promise 和 Success 之间的区别

JavaScript - 在重定向之前记录

java - 如何使用多个数组对象访问JSON数据: android

javascript - React onClick listItem 显示来自 JSON 的选定 listItem 的数据