使用jQuery设置下拉列表的选定索引

使用jQuery设置下拉列表的选定索引,jquery,ajax,drop-down-menu,reset,Jquery,Ajax,Drop Down Menu,Reset,我在SO上看到过关于这个主题的其他帖子,但我没有找到一个解决方案,即使用jQuery设置select 我有一个下拉列表,如下所示: <select type="select" id="docsList" name="docsList"> <option id="defaultListItem" value="0">Select a Document...</option> <option value="38">Document

我在
SO
上看到过关于这个主题的其他帖子,但我没有找到一个解决方案,即使用
jQuery
设置select

我有一个下拉列表,如下所示:

<select type="select" id="docsList" name="docsList"> 
    <option id="defaultListItem" value="0">Select a Document...</option> 
    <option value="38">Document 1</option> 
    <option value="35">Document 2</option> 
    <option value="46">Document 3</option> 
    <option value="45">Document 4</option>          
</select>
。。。还有其他一些


我开始认为这段代码很好,而且我还有其他一些东西在阻止重置下拉列表。

你把事情复杂化了。您不需要jQuery来获取/设置
selectedIndex

$('#docsList').get(0).selectedIndex = 0;
设置
的值时,在
上调用
.val()
,而不是在其
上调用

$('#docsList').val('0');
您需要
$('select#docsList').val('0')参见以下示例:

$(“#docsList option[value=0]”)。attr('selected','selected')

这将把value属性设置为0的
设置为所选选项。

马特的答案有一个小缺陷:

$('#docsList').val('0');
当不处于兼容模式时,上述代码在IE 9中不起作用。以下是我在跨浏览器中使用的:

document.getElementById('docsList').selectedIndex = 0;

不过,谢谢你给我指出了正确的方向。

其他所有的方法也都能奏效,但马特的解释和最简单的解决方案让我感到很荣幸!谢谢大家!好文章,还应该注意,
selectedIndex
是一个属性。@GoldBishop谢谢。为什么要指出这一点?我看不出这有什么好处。也许你应该详细说明一下,因为JQuery/JS可以让你做任何你想做的事情。尽管它看起来很好,但当您尝试使用赋值时,在您尝试并调试它之前,它可能并不明显。当然是个人经验。@GuyCohen您确定选择器中的id与select元素的id匹配吗?您确定DOM完全加载后代码正在运行吗?您好,很抱歉,我无法尽快回复。我在JSFIDLE中测试了您的样本。。。。现在我知道为什么了——当我将值设置为1时(只是为了看看是否可以选择第一项以外的值),我没有将值1添加到第二项。在任何情况下,我的工作示例如下:$('#mylistname').prop('selectedIndex',1);
$(".btn-reset").click(function () {
    $('#docsList').val('123er43f-12fr-7hgy-ju78-kju345uy65r3');
    $('#docsList').trigger('chosen:updated');
});
$(".btn-reset").click(function () {
    $('#docsList').val('123er43f-12fr-7hgy-ju78-kju345uy65r3');
    $('#docsList').trigger('chosen:updated');
});