在我的Web应用程序中,一个方法返回一个数组列表,其中包含必须选择的选择选项的ID。使用DOM方法很难选择它们。
有没有办法使用jQuery。
任何建议都会更有意义......
提前致谢!!!
答案 0 :(得分:4)
使用jQuery,您只需在元素集合上调用attr("selected", true)
即可。您所要做的就是让选择器正确:
$('#opt1, #opt2, #opt3').attr("selected", true);
答案 1 :(得分:2)
编辑:根据您的评论,您的数据会显示以下代码。
有一个问题。 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>
然后你会这样做:
$.each(array, function(i,val) {
$('#id_' + val.respID).attr("selected", "selected");
});
答案 2 :(得分:1)
实际上非常简单,您需要做的就是将所选属性添加到您想要的元素中。
$("#id1, #id2", "select").attr("selected", "selected");
您也可以按值过滤
$("option[value=someText]", "select").attr("selected", "selected");
答案 3 :(得分:1)
如果ids是一个ID数组,则以下代码应该有效:
$.each(ids, function() { $("#" + this).attr("selected", true); });