如何使用jquery在多个选择列表中选择多个选项?

如何使用jquery在多个选择列表中选择多个选项?,jquery,Jquery,在我的web应用程序中,一个方法返回一个数组列表,其中包含必须选择的select选项的ID。很难使用DOM方法将它们全部选中 有没有任何方法可以使用jQuery来实现这一点 任何建议都将更加感激 提前感谢 使用jQuery,您只需在元素集合上调用attr(“selected”,true)。您所要做的就是正确选择: $('#opt1, #opt2, #opt3').attr("selected", true); 这其实很简单,只需将selected的属性添加到所需的元素中即可 $("#id1,

在我的web应用程序中,一个方法返回一个数组列表,其中包含必须选择的select选项的ID。很难使用DOM方法将它们全部选中

有没有任何方法可以使用jQuery来实现这一点

任何建议都将更加感激


提前感谢

使用jQuery,您只需在元素集合上调用
attr(“selected”,true)
。您所要做的就是正确选择:

$('#opt1, #opt2, #opt3').attr("selected", true);

这其实很简单,只需将selected的属性添加到所需的元素中即可

$("#id1, #id2", "select").attr("selected", "selected");
您也可以按值筛选它们

$("option[value=someText]", "select").attr("selected", "selected");

如果ids是一个ids数组,则以下代码应该可以工作:

$.each(ids, function() { $("#" + this).attr("selected", true); });

编辑:根据您在下面的评论,您的数据看起来像下面的代码

有个问题。HTML ID属性以数字开头是无效的。ID必须以字母开头

无论如何,我会向您展示解决方案,但您应该修复ID

var array = [{respID:1, respName:null}, 
             {respID:2, respName:null}, 
             {respID:3, respName:null}, 
             {respID:4, respName:null}, 
             {respID:5, respName:null} 
             ];

$.each(array, function(i,val) { 
     $('#' + val.respID).attr("selected", "selected"); 
});
现在,这将为您提供循环每次迭代中的
respID

但是,HTML ID不能以数字开头。我建议将您的HTML ID属性更新为类似
ID_5
的内容,而不是
5

<select>
    <option id="id_1" value="some value">some text</option>
    <option id="id_2" value="some value">some text</option>
    <option id="id_3" value="some value">some text</option>
    ...
</select>

@treeface-很清楚他想要什么…实际上,selected不接受true/false,用“false”试试,它仍然会显示为selected。@Marko:如果我们说的是属性,你是对的。但是,jQuery的attr()函数检查第一个参数是否为有效的属性名,并首先设置该参数。所选属性需要布尔值(true或false),在本例中,“selected”将是无效值。jQuery这样做是为了解决Internet Explorer中setAttribute()的问题。@Marko-
false
确实有效:)在这里试试:@Marko-我想你的困惑来自
“false”
,字符串
“false”
在JS中是
true
,而布尔关键字
false
实际上是
false
,所以你需要不加引号地通过考试。谢谢@Nick Craver和@Andy E:我每天都学到新东西我想说的是,选中的HTML属性可以不带值保留,也就是说,如果您添加selected=“false”,它仍将显示为选中,请参见此处嘿,感谢您的回复。。。这些多个选择选项是动态生成的。数组列表如下所示。。。EmployeeManagement.getSelOptions(id,function(resp){//Jquery Code here…}这里的“resp”是列表数组…我应该如何使用这个变量,我必须遍历任何循环…???!!感谢againSee@Patrick和@Vadim对循环遍历id的回答我的数组列表是这样的{respID:1,respName:null},{respID:2,respName:null},{respID:3,respName:null},{respID:4,respName:null},{respID:5,respName:null}它是在运行时动态创建的。我想用ID的s@MaRaVaN-好的,那有点不同。我马上更新。
$.each(array, function(i,val) { 
     $('#id_' + val.respID).attr("selected", "selected"); 
});