如何使用jQueryselect<select>的第一个选项?

<select id="target"> <option value="1">...</option> <option value="2">...</option> </select> 
 $("#target").val($("#target option:first").val()); 
 // remove "selected" from any options that might already be selected $('#target option[selected="selected"]').each( function() { $(this).removeAttr('selected'); } ); // mark the first option as selected $("#target option:first").attr('selected','selected'); 

你可以试试这个

 $("#target").prop("selectedIndex", 0); 

当你使用

 $("#target").val($("#target option:first").val()); 

如果第一个选项值为null,则在Chrome和Safari中将无法使用。

我更喜欢

 $("#target option:first").attr('selected','selected'); 

因为它可以在所有的浏览器中工作。

更改selectinput的值或调整选定的属性可能会覆盖DOM元素的默认selectedOptions属性,导致元素在调用重置事件的表单中可能无法正确重置。

使用jQuery的prop方法来清除并设置所需的选项:

 $("#target option:selected").prop("selected", false); $("#target option:first").prop("selected", "selected"); 
 $("#target")[0].selectedIndex = 0; 

认为我已经发现关于顶级投票答案的一个微妙的一点是,即使他们正确地改变了选定的值,他们也不会更新用户看到的元素(只有当他们点击小工具时,他们会看到旁边的检查更新元素)。

将.change()调用链接也将更新UI小部件。

 $("#target").val($("#target option:first").val()).change(); 

(请注意,我注意到这一点,而在Chrome桌面上使用jQuery Mobile和一个盒子,所以这可能不是这种情况)。

如果您禁用了选项,则可以添加([禁用])以防止select导致以下情况的选项:

 $("#target option:not([disabled]):first").attr('selected','selected') 

另一种重置值的方法(对于多个选定的元素)可以是这样的:

 $("selector").each(function(){ /*Perform any check and validation if needed for each item */ /*Use "this" to handle the element in javascript or "$(this)" to handle the element with jquery */ this.selectedIndex=0; }); 

我发现如果已经有一个选定的属性,只是设置attrselect不起作用。 我现在使用的代码将首先取消选定的属性,然后select第一个选项。

 $('#target').removeAttr('selected').find('option:first').attr('selected', 'selected'); 

$('#newType option:first').prop('selected', true)

这样简单:

 $('#target option:first').prop('selected', true); 

我知道这个问题已经得到解答,但是这里是我如何去做的

 $("#target option") .removeAttr('selected') .find(':first') //you can also use .find('[value=MyVal]') .attr('selected','selected'); 

虽然每个function可能不是必要的…

 $('select').each(function(){ $(this).find('option:first').prop('selected', 'selected'); }); 

为我工作。

如果你打算使用第一个选项作为默认值

 <select> <option value="">Please select an option below</option> ... 

那么你可以使用。

 $('select').val(''); 

好而简单。

使用$("#selectbox option:first").val()

请find工作简单的jsfiddle

在詹姆斯·李·贝克的回复,我更喜欢这个解决scheme,因为它消除了对以下浏览器支持的依赖:第一:select…

 $('#target').children().prop('selected', false); $($('#target').children()[0]).prop('selected', 'selected'); 

它只在最后使用触发器('更改'),如下所示:

 $("#target option:first").attr('selected','selected').trigger('change'); 

对我来说,只有当我添加下面的代码:

.change();

对于我来说,只有当我添加下面的代码时才起作用:因为我想“重置”表单,也就是说,select表单中所有select的所有第一个选项,我使用了下面的代码:

$('form').find('select').each(function(){ $(this).val($("select option:first").val()); $(this).change(); });

 $("#target").val(null); 

在铬中工作得很好

如果你正在存储select元素的jQuery对象:

 var jQuerySelectObject = $("..."); ... jQuerySelectObject.val(jQuerySelectObject.children().eq(0).val()); 

alert($(“#target option:first”).text());

使用jQueryES2015检查这个最佳方法:

 $('select').each((i, item) => { var $item = $(item); $item.val($item.find('option:first').val()); }); 

问候,Nicholls