使用jQuery来select一个下拉选项

我想知道是否有可能得到jQueryselect一个选项,说第四项,在下拉框?

<select> <option></option> <option></option> <option></option> <option></option> <option></option> </select> 

我希望用户点击一个链接,然后让select框更​​改它的值,就好像用户通过点击选项来select它。

怎么样

 $('select>option:eq(3)').attr('selected', true); 

例如http://www.jsfiddle.net/gaby/CWvwn/


对于现代版本的jQuery,你应该使用.prop()而不是.attr()

 $('select>option:eq(3)').prop('selected', true); 

例如http://jsfiddle.net/gaby/CWvwn/1763/

解决scheme:

 $("#control id").val('the value of the option'); 

HTML select元素有一个selectedIndex属性,可以写入以select一个特定的选项:

 $('select').prop('selectedIndex', 3); // select 4th option 

使用普通的JavaScript可以通过以下方式实现:

 // use first select element var el = document.getElementsByTagName('select')[0]; // assuming el is not null, select 4th option el.selectedIndex = 3; 

如果你的select有价值,你可以这样做:

 $('select').val("the-value-of-the-option-you-want-to-select"); 

'select'将是您的select或类select器的ID。 或者如果只有一个select,则可以使用该示例中的标记。

最简单的方法是val(value)函数:

 $('select').val(2); 

为了得到选定的值,你不给任何参数:

 $('select').val(); 

另外,如果你有<option value="valueToSelect">...</option> ,你可以这样做:

 $('select').val("valueToSelect"); 

DEMO

我会这样做

  $("#idElement").val('optionValue').trigger('change'); 

如果要select具有特定值的选项,请使用以下代码:

 $('select>option[value="' + value + '"]').prop('selected', true); 

我更喜欢nth-child()到eq(),因为它使用基于1的索引而不是基于0的索引,这在我的大脑上稍微容易一些。

 //selects the 2nd option $('select>option:nth-child(2)').attr('selected', true); 

通常我们使用''元素'value'属性。 这将使它更容易设置:

 $('select').val('option-value'); 

尝试这个:

 $('#mySelectElement option')[0].selected = true; 

问候!

用id回答:

 $('#selectBoxId').find('option:eq(0)').attr('selected', true); 
  Try with the below codes. All should work. $('select').val(2); $('select').prop('selectedIndex', 1); $('select>option[value="5"]').prop('selected', true); $('select>option:eq(3)').attr('selected', 'selected'); $("select option:contains(COMMERCIAL)").attr('selected', true); 
  $('select>option:eq(3)').attr('selected', 'selected'); 

这里的一个警告是,如果你有select/选项的更改事件的JavaScript观看,你需要添加.trigger('change')所以代码成为。

  $('select>option:eq(3)').attr('selected', 'selected').trigger('change'); 

因为只有调用.attr('selected', 'selected')不会触发事件