Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jquery填充select元素?_Jquery_Jsp_Servlets_Combobox - Fatal编程技术网

如何使用jquery填充select元素?

如何使用jquery填充select元素?,jquery,jsp,servlets,combobox,Jquery,Jsp,Servlets,Combobox,我在jsp页面中有一个select元素(组合框),我想在发生某个事件时(比如单击按钮)向这个组合框添加元素。我想添加到这个组合中的元素由servlet以两个字符串发送,一个用于显示部分(位于内部),另一个用于组合框中元素的值。在JSP中,我拆分了这些字符串,并且能够提取servlet发送的项目。此外,我还可以将元素添加到此组合中,但无法添加组合中每个元素的值部分。有什么帮助吗 $.ajax({ type:"get", data:{item:selectedi

我在jsp页面中有一个select元素(组合框),我想在发生某个事件时(比如单击按钮)向这个组合框添加元素。我想添加到这个组合中的元素由servlet以两个字符串发送,一个用于显示部分(位于内部),另一个用于组合框中元素的值。在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;
             }

         }

     });
$.ajax({
键入:“获取”,
数据:{item:selecteditem},
url:“Servlet”,
数据类型:“json”,
成功:功能(数据){
var modlist=data.modulelist;
var tokenlist=data.tokenlist;
var num=data.num;
var modarr=新数组();
var tokarr=新数组();
var计数=1;
modarr=modlist.split(“~delimiter~”);
tokarr=tokenlist.split(“~delimiter~”);

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

$(“#列表框”).append(“+modarr[count]+”);

val-val=tokarr[count]。替换(“,”&;”;
$(“#列表框”).append(“+modarr[count]+”);
试试这个:

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]));
});
var$options=$(“#列表框”);//获取选择元素
$options.empty();//如果需要,请删除现有的选择选项
//环通modarr
$.each(modarr,函数(索引,值){
$options.append($('').text(value).attr('value',tokarr[index]);
});

这里的索引和值是什么?请解释一下。我明白了!谢谢你这么简单的回答:-)它可以工作,但是如果tokarr[]有一些空格元素,比如tokarr[2]=“alc lanz”,那么它只会添加“alc”到select元素的值部分。@edge您需要将空格替换为
&;
。我已经更新了我的答案现在它只适用于一个空格。如果超过一个空格,它不会显示。而且,这一次,&在空格处可见。无论如何,感谢您的建议。正如Rembo所建议的,它可以工作。
val val = tokarr[count].replace(" ", "&amp;");
$("#listbox").append("<option value=" + val + ">"+modarr[count]+"</option>");
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]));
});