有一个值[1,2,4]数组,表示多选框的值,我如何使用jquery或普通javascript将它们设置为选中?
感谢您的帮助。
答案 0 :(得分:6)
jQuery有一个名为$.inArray(value,array)
的实用程序。你可以这样做:
var array = [1,2,4];
$('#example option').each(function() {
var $th = $(this);
var value = parseInt($th.val());
if( $.inArray(value,array) >= 0 ) {
$th.attr('selected','selected');
}
});
$.inArray()
返回值的索引(如果找到),如果不在数组中,则返回-1。这就是为什么你需要测试>= 0
。
在此查看示例 -
答案 1 :(得分:3)
在纯JavaScript中:
function in_array(needle, haystack, argStrict)
{
var key = '', strict = !!argStrict;
if (strict)
{
for (key in haystack)
{
if (haystack[key] === needle)
return true;
}
}
else
{
for (key in haystack)
{
if (haystack[key] == needle)
return true;
}
}
return false;
}
var values = new Array(1, 2, 4);
var select = document.getElementById('selectName'); //Change to the id of the select
if (select)
{
for (var i = 0; i < select.options.length; i++)
{
//Select options matching array values, unselect others
select.options[i].selected = in_array(select.options[i].value, values, false);
}
}
UPDATE:添加了模仿PHP的JavaScript函数in_array ......
答案 2 :(得分:0)
我对Javascript不太熟悉,但我认为就是这样:
var values = [1, 2, 4];
var sel = document.getElementsByTagName('SELECT')[0];
for (var i = 0; i < sel.options.length; i++) {
if(sel.options[i].value == 1 || sel.options[i].value == 2 || sel.options[i].value == 4)
sel.options[i].selected = 'selected';
}