将多个选定的true应用于选项jquery

时间:2014-06-12 09:25:12

标签: javascript jquery html html5

<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;
                }
              }

不能正常工作,它会选择所有四个选项

3 个答案:

答案 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);
});

example