使用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