我有一组加载页面上的值: 例如[1193,1184,2372]。
我有一个dropdownchecklist,可以采用单个值 $( “DDL”)dropdownchecklist()VAL(1193);
当我重新绑定dropdownchecklist时,这会正确选择值。但是我尝试将包含多个值的数组传递给val()方法,并且不选择值。我有点期待这个。我不确定如何最好地进行预选。
我已经尝试迭代我的数组来构建一个filter属性来应用如下: $(“。ddl [value * ='1184'] [value * ='9067'] [value * ='14841']”)。attr('selected','selected');
但这不起作用。我不想迭代ddl中的所有选项并将它们设置为选中,如果它们匹配,因为有数百个选项,这将不是很好的性能,特别是如果只有2个选项可以预先选择。
有什么想法吗?
答案 0 :(得分:2)
创建一个选定的字符串以创建jQuery选择器字符串并将其放入.find()函数中:
var str = '';
var arrLength = selectedArray.length;
$.each(selectedArray, function(i){
str += 'option[value*='+selectedArray[i]+']';
if((i+1) != arrLength){
str += ', ';
}
});
$('.ddl').find("option[value*='1184'], option[value*='9067'], option[value*='14841']")
.attr('selected','selected');
另请注意,在将下拉列表与值进行比较时,您需要在select中查找option
元素,而不是select元素本身。
答案 1 :(得分:0)
我得到了它,但上面的答案看起来是一个很好的解决方案:
$.each(arr, function(i,s)
{
$(ddl_id + ' [value*=\'' + s + '\']').attr('selected','selected');
});
不确定哪个可能更快但地雷更清洁。