如何使用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());
使用jQuery和ES2015检查这个最佳方法:
$('select').each((i, item) => { var $item = $(item); $item.val($item.find('option:first').val()); });
问候,Nicholls