以编程方式选择第N个选项

时间:2015-12-05 22:34:16

标签: javascript jquery html select drop-down-menu

我有一个填充选择框的脚本。这意味着我不知道该框中的值或数字项。

我想创建另一个脚本来模拟选择该框中第N个项目的行为。我已经阅读过,无法弄清楚如何做到这一点。我确信有一个简单的选择。

5 个答案:

答案 0 :(得分:2)

使用selectedIndex属性:

$('select').prop('selectedIndex',  3);

您可以链接change()方法来触发任何change()事件:

<强>段:

&#13;
&#13;
$('select').change(function() {
  console.log('changed');
});

$('select').prop('selectedIndex',  3).change();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option>Not me</option>
  <option>Not me</option>
  <option>Not me</option>
  <option>Select me!</option>
  <option>Not me</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您可以使用eq()方法选择匹配集中的第N个项目。在那里,您可以将selected的{​​{1}}属性设置为option以选择它。试试这个:

true

请注意,$('#mySelect option').eq(2).prop('selected', true).trigger('change'); 的索引是从零开始的,因此上面会选择第三个eq()元素。

另请注意,以编程方式选择option时,不会引发任何事件。如果您需要该活动,则需要使用option手动启动该活动。

答案 2 :(得分:0)

$('#mySelect').change(function(){
   var selectedOption = $(this).prop('selected', true)
})

答案 3 :(得分:0)

如果您已将select元素作为对象或循环。

$('select').each(function() {
   if( /*Some Filter*/ ){
      $(this).val($(this).find('option').eq(2).val()).trigger('change');
   }
});

它对我有用。

在Chrome和IE上测试过。

答案 4 :(得分:0)

&#13;
&#13;
$('select').change(function() {
  console.log('changed');
});

$('select').prop('selectedIndex',  3).change();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option>Not me</option>
  <option>Not me</option>
  <option>Not me</option>
  <option>Select me!</option>
  <option>Not me</option>
</select>
&#13;
&#13;
&#13;