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