<select id="testd" name="testd[]" multiple="" style="min-height: 100px;">
<option value="16">test1</option>
<option value="21">test2</option>
<option value="27">test3</option>
<option value="24">test4</option>
</select>
如何将seleted true应用于多个选项, 例16,24,想要将seleted true应用于选项
我试过
var optionsToSelect = ['16,24'];
var select = document.getElementById( 'testd' );
for ( var i = 0, l = select.options.length, o; i < l; i++ )
{
o = select.options[i];
console.log(o);
if ( optionsToSelect.indexOf( o.value ) != -1 )
{
o.selected = true;
}
}
不能正常工作,它会选择所有四个选项
答案 0 :(得分:3)
更改
var optionsToSelect = ['16,24'];
到
var optionsToSelect = ['16','24'];
这是如何定义字符串数组。否则你的代码工作正常。
<强> Working Demo 强>
答案 1 :(得分:0)
问题是optionsToSelect
不正确,您需要将不同的ID存储在数组中的单独索引中
因为你正在使用jQuery试试
var optionsToSelect = [16, 24];
$('#testd option').filter(function () {
return $.indexOf(+this.value, optionsToSelect) >= 0
}).prop('selected', true)
答案 2 :(得分:0)
试试这个:
var selValues="16,24";
$.each(selValues.split(","), function(i,e){
$("#testd option[value='" + e + "']").prop("selected", true);
});