如何使用jquery填充select元素?

时间:2014-04-19 11:02:40

标签: jquery jsp servlets combobox

我在jsp页面中有一个select元素(组合框),我想在发生某些事件时向这个组合框添加元素,比如单击一个按钮。我想要添加到此组合的元素由servlet以两个字符串1发送给显示部分,其中显示部分进入内部,另一个用于组合框中元素的值。在JSP中,我拆分了这些字符串,并且我能够提取servlet发送的项目。此外,我能够将元素添加到此组合,但是,我无法在组合中添加每个元素的值部分。有什么帮助吗?

 $.ajax({
         type:"get",
         data:{item:selecteditem},
         url:"Servlet",
         dataType:"json",
         success:function(data){
             var modlist=data.modulelist;
             var tokenlist=data.tokenlist;
             var num=data.num;
             var modarr=new Array();
             var tokarr=new Array();
             var count=1;
             modarr=modlist.split("~delimiter~");
             tokarr=tokenlist.split("~delimiter~");
             while(count<=num){
                 $("#listbox").append("<option value=tokarr[count]>"+modarr[count]+"</option>");
                 count=count+1;
             }

         }

     });

2 个答案:

答案 0 :(得分:0)

因为您使用tokarr[count]作为字符串而不是变量 改变

$("#listbox").append("<option value=tokarr[count]>"+modarr[count]+"</option>");

val val = tokarr[count].replace(" ", "&amp;");
$("#listbox").append("<option value=" + val + ">"+modarr[count]+"</option>");

答案 1 :(得分:0)

试试这个:

var $options = $("#listbox"); // get select element

$options.empty(); // remove existing select options, if you want

//loop through modarr
$.each(modarr, function(index, value) {
    $options.append($('<option>').text(value).attr('value', tokarr[index]));
});