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

Use jQuery to set select box value to first option

本文关键字:设置 第一个 选项 jQuery 选择 使用      更新时间:2023-09-26

我正在用选项动态填充一个选择框。当我这样做时,我希望选择框的值是第一个选项的值(如果你愿意,可以是"默认选项")。听起来真的很简单,但我就是做不到。

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());

我哪里错了?

选项应为选择

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

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

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

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

你尝试的第二个案例应该有效,除非你打电话的时机不对。即;等待ajax响应完成。

尝试在donesuccess(已弃用)处理程序内部调用该函数

你几乎得到了它,把"s"放在"options"中:

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

工作jsFiddle

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

myElement[0].selectedIndex = 0;

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

如果你想确保你的选项有一个值,而不是占位符,你可以这样做:

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

这样,您将检查HTML节点是否具有属性value并且不为空。