使用jQuery将选择框值设置为第一个选项

Kim*_*nce 19 javascript jquery

我正在动态填充带有选项的选择框.当我这样做时,我希望选择框的值是第一个选项的值(如果你愿意,可以选择'默认选项').听起来很简单,但我无法让它发挥作用.

var myElement = $('select[name="myName"]');
Run Code Online (Sandbox Code Playgroud)

....尝试了以下三种变化

// myElement.find('option').first().prop('selected', 'selected');
// myElement.val(myElement.find('options').first().val());
myElement.prop('selectedIndex', 0);
Run Code Online (Sandbox Code Playgroud)

...但是以下行给出了空白警报

alert(myElement.val());
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

Sus*_* -- 30

选项应该是选项

myElement.find('option:eq(0)').prop('selected', true);
Run Code Online (Sandbox Code Playgroud)

您可以使用eq选项上的选择器来选择第一个选项.

如果您知道第一个选项的值.然后你就可以做到

myElemeent.val('first value') // Which selects the option by default
Run Code Online (Sandbox Code Playgroud)

你试过的第二种情况应该有效,除非你没有在正确的位置打电话.即; 等待ajax响应完成.

尝试在donesuccess(不建议使用)处理程序中调用它


Yot*_*mer 5

你几乎得到了它,把's'放在'选项'中:

myElement.val(myElement.find('option').first().val());
Run Code Online (Sandbox Code Playgroud)

工作jsFiddle


Mar*_*ari 5

您还可以使用下一个代码:

myElement[0].selectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)

这个 get 是 Dom 元素(不是 jQuery 对象),使用 vanilla Javascript 并使用它根据它的索引将第一个选项设置为选定的选项。