使用jQuery设置下拉菜单的选定索引

如何设置jQuery下拉列表的索引,如果我find控件的方式如下:

$("*[id$='" + originalId + "']") 

我这样做,因为我dynamic创build控件,并且因为使用Web窗体时更改ID,我发现这是一个工作,find我的一些控制。 但是,一旦我有jQuery对象,我不知道如何将选定的索引设置为0(零)。

首先 – 这个select器非常慢。 它会扫描每个DOM元素寻找ID。 如果您可以为元素指定一个类,那么性能将会降低。

 $(".myselect") 

为了回答你的问题,有几种方法可以改变jQuery中的select元素的值

 // sets selected index of a select box to the option with the value "0" $("select#elem").val('0'); // sets selected index of a select box to the option with the value "" $("select#elem").val(''); // sets selected index to first item using the DOM $("select#elem")[0].selectedIndex = 0; // sets selected index to first item using jQuery (can work on multiple elements) $("select#elem").prop('selectedIndex', 0); 

刚刚发现这个,它适用于我,我个人觉得更容易阅读。

这将设置实际的索引就像gnarf的答案编号3选项。

 // sets selected index of a select box the actual index of 0 $("select#elem").attr('selectedIndex', 0); 

这并没有用于工作,但现在…看到bug: http : //dev.jquery.com/ticket/1474

附录

按照评论中的build议使用:

$("select#elem").prop('selectedIndex', 0);

我在用着

 $('#elem').val('xyz'); 

selectvalue ='xyz'的选项元素

我在2015年写了这个答案,由于某种原因(可能是老版本的jQuery)没有其他答案为我工作。 我的意思是,他们改变了选定的指数,但实际上并没有反映实际的下拉。

这是改变索引的另一种方式,实际上它反映在下拉菜单中:

 $('#mydropdown').val('first').change(); 

JQuery代码:

 $("#sel_status").prop('selectedIndex',1); 

Jsp代码:

 Status: <select name="sel_status" id="sel_status"> <option value="1">-Status-</option> <option>ALL</option> <option>SENT</option> <option>RECEIVED</option> <option>DEACTIVE</option> </select> 

您想要获取select元素中第一个选项的值。

 $("*[id$='" + originalId + "']").val($("*[id$='" + originalId + "'] option:first").attr('value')); 
 $("[id$='" + originalId + "']").val("0 index value"); 

将其设置为0

select第二个选项

 $('#your-select-box-id :nth-child(2)').prop('selected', true); 

这里我们添加`trigger('change')来使事件触发。

 $('#your-select-box-id :nth-child(2)').prop('selected', true).trigger('change'); 

select第四个选项

 $('#select').val($('#select option').eq(3).val()); 

例如jsfiddle