【问题标题】:Binding json string with drop-down using jquery使用jquery将json字符串与下拉列表绑定
【发布时间】:2013-12-28 09:43:14
【问题描述】:

我是 jQuery 的新手。我正在使用 gson-2.2.3.jar 在我的 servlet 中创建 json 字符串:

Gson gs = new Gson();
    String json = gs.toJson(names);
    System.out.println(json);
    PrintWriter out = resp.getWriter();
    out.println(json);
    out.close();

以下是我尝试将 json 字符串与下拉列表绑定的两个注释代码,但它们都不起作用:

$.ajax({
         type:"POST",
         url: "DropDownController",
         success: function(result){
            alert(result);
            /* for (var id in result) {
                $("#drpDown").append('<option value="'+id+'">'+id+'</option>');
            } */
            /* $.each(result, function (index, value) {                 
                $("#drpDown").append('<option value="'+value.id+'">'+value.name+'</option>');
            }); */
         }
      });

success 中的警告消息框显示以下格式的 json 字符串:

["Alabama","California","Alaska","Ohio"]

请告诉我如何将上述json string 数据与下拉列表绑定。

【问题讨论】:

    标签: javascript jquery json gson


    【解决方案1】:

    试试这样:

    $.ajax({
        type: 'POST',
        url: 'DropDownController',
        dataType: 'json',
        success: function(result) {
            $.each(result, function() {
                $("#drpDown").append(
                    $('<option/>', {
                        value: this,
                        html: this
                    })
                );
            });
        }
    });
    

    【讨论】:

    • 感谢您的回复,它工作得很好。你能解释一下.each里面发生了什么吗?我是 jquery 的新手,因此愿意逐行理解它。请详细说明。
    • 对于循环的每次迭代,.append() 方法会将其参数作为子元素添加到下拉列表中。 $('&lt;option/&gt;', { value: this, html: this }) 将创建一个新的 &lt;option&gt; 元素,该元素将被附加并安全地将其内部 HTML 和 value 属性设置为 this。现在$.each 中的this 指的是正在迭代的当前元素。既然你有一个字符串数组["Alabama","California","Alaska","Ohio"],那么它将引用AlabamaCalifornia,...
    • 感谢您的解释。
    • 为什么不输入:'GET',
    【解决方案2】:

    试试这个

    var jso=["Alabama","California","Alaska","Ohio"]
    for (var i in jso) {
      $("#test").append('<option value="'+jso[i]+'">'+jso[i]+'</option>');
    } 
    

    DEMO

    【讨论】:

    • 感谢您的回复,只有在成功块内设置了dataType: 'json' 时才有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多