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

时间:2013-08-23 00:52:30

标签: javascript jquery

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

var myElement = $('select[name="myName"]');

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

// myElement.find('option').first().prop('selected', 'selected');
// myElement.val(myElement.find('options').first().val());
myElement.prop('selectedIndex', 0);

...但以下行给出了空白警告

alert(myElement.val());

我哪里错了?

4 个答案:

答案 0 :(得分:30)

选项应为选项

myElement.find('option:eq(0)').prop('selected', true);

您可以使用该选项上的eq选择器选择第一个选项。

如果您知道第一个选项的值。然后你可以简单地做

myElemeent.val('first value') // Which selects the option by default

你试过的第二个案例应该有效,除非你没有在正确的位置打电话。即;等待ajax响应完成。

尝试在donesuccess(已弃用)处理程序

中调用它

答案 1 :(得分:5)

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

myElement.val(myElement.find('option').first().val());

<强> Working jsFiddle

答案 2 :(得分:4)

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

myElement[0].selectedIndex = 0;

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

答案 3 :(得分:0)

如果您想确保您的选项具有值并且不是占位符,则可以执行以下操作:

$('select option').filter( function (index, option) {
  return option.attributes.value
}).val()

这样您就可以检查HTML节点是否具有属性value并且不是空的。