通过jQuery动态生成下拉列表的内容

时间:2010-03-01 04:30:20

标签: javascript jquery ajax json drop-down-menu

我是Javascript,JSON和jQuery的新手。所以请对我很轻松。我有一个包含下拉列表的JSP页面。加载页面时,将填充下拉列表的内容。我编写了一个Servlet,它以Map的形式返回下拉列表的包含,并将其转换为JSON字符串并通过response.getWriter().write(json);发送回jsp但是我无法从jsp中获取结果然后,从结果中填充下拉列表的包含。这是我的代码

customer.jsp

    $(document).ready(function(){  
          getCustomerOption('customer');//try to pre-populate the customer drop down list
    });  
    function getCustomerOption(ddId){
          var dd = $('#' + ddId);
          $.getJSON("http://localhost:8080/WebApps/DDListJASON", function(opts) {
                 $('>option', dd).remove(); // Remove all the previous option of the drop down
                 if(opts){
                     $.each(opts, function(key, value){
                          dd.append($('<option/>').val(key).text(value));
                     }
                 }
          });
    }

down where the drop down list is generated

<select id="customer" name="customer">  
<option></option>  
</select>  

结果是没有任何内容填充到列表中。太伤心了

3 个答案:

答案 0 :(得分:4)

我认为你在文档准备中调用了错误的函数

不应该是

getInitialOption('customer');

而不是

getCustomerOption('customer');

答案 1 :(得分:0)

您可以使用以下代码向<option>添加其他<select>个元素:

$("#selectID").append("<option>" + text + "</option>");

请参阅:JQuery Docs

答案 2 :(得分:0)

我不明白$(''),但我也不确定这个问题是什么,很难说清楚。

我知道如果你在内存中创建选项列表然后用.html(选项)附加一个而不是一次附加一个选项列表会更快。这也可以让人更容易理解,一次构建一行html然后追加它。