我有一个选择框:

<select id="selectBox">
  <option value="0">Number 0</option>
  <option value="1">Number 1</option>
  <option value="2">Number 2</option>
  <option value="3">Number 3</option>
  <option value="4">Number 4</option>
  <option value="5">Number 5</option>
  <option value="6">Number 6</option>
  <option value="7">Number 7</option>
</select>

我想将其中一个选项设置为“选定”基于它的选定索引。

例如,如果我试图设置“数字3”,我尝试这样做:

$('#selectBox')[3].attr('selected', 'selected');

但这行不通。我如何设置一个选项,因为选择基于它的索引使用jQuery?

谢谢!


当前回答

试试这个吧:

$("#selectBox").val(3);

其他回答

我也遇到过同样的问题。 首先你需要遍历事件(即哪个事件先发生)。

例如:

第一个事件是生成带有选项的选择框。

第二个事件是使用val()等函数选择默认选项。

您应该确保第二个事件应该发生在第一个事件之后。

为了实现这个目标,需要用到两个函数,比如generateSelectbox()(用于生成选择框)和selectDefaultOption()

您需要确保只有在generateSelectbox()执行之后才调用selectDefaultOption()

我经常使用触发器(“改变”)来让它工作

$('#selectBox option:eq(position_index)').prop('selected', true).trigger('change');

示例:id select = selectA1, position_index = 0 (select中的第一个选项):

$('#selectA1 option:eq(0)').prop('selected', true).trigger('change');

试试这个吧:

$("#selectBox").val(3);

试试这个:

$('select#mySelect').prop('selectedIndex', optionIndex);

最后,触发一个.change事件:

$('select#mySelect').prop('selectedIndex', optionIndex).change();

更简单:

$('#selectBox option')[3].selected = true;