确定。没有人在听我的话,所以我会试着通过向你展示我想要的工作代码来重新解释这个问题,但不是按照我想要的方式。
注意:我不是在问这个怎么做。我问更多......最好的方式......
// First I need the proper value $select.find("option:selected").prop("selected", false); $select.find("option:first").prop("selected", true); // Now I need the event to fire $select.trigger("change");
我想在一行中这样做......就像这个问题的最后一行代码一样。
请不要告诉我任何你会期待10年前做过前端工作的人知道的事情。
原文 - 根据以下内容不要回答
真的不一定是jQuery,但我正在使用它,所以它也可能是。
基本上,我想做的是说
var $option = $select.find("option:first");
$option.trigger("click");
但这并没有真正起作用。我的意思是,它确实如此,但它似乎并没有激发选择中的变化事件...所以我认为我应该做更像是......
$select.triggerEvent(new Event({ type : "change", target : $option });
但这不可能是正确的。
答案 0 :(得分:1)
使用.val()
更改select
下拉列表的值:
$select.val($select.find('option:first').val());
答案 1 :(得分:0)
您可以使用.attr
方法
var $option = $select.find("option:first");
$option.attr('selected', true);
或使用.val()
进行选择
var $option = $select.find("option:first").val();
$select.val($option);
答案 2 :(得分:0)
您可以使用prop()jQuery方法,如下所示:
$select.find('option:first').prop('selected',true);
semantically这是将选项设置为选中的正确方法,它似乎也是set properties in jQuery since 1.6的正确方法。
如果你在1.6之前使用jQuery ,你应该这样做:
$select.find('option:first').attr('selected',true);
如果您需要在选择中触发更改事件,则可以执行以下操作:
$select.find('option:first').prop('selected',true);
$select.change();
如果你需要一行,你可以用某种方式扩展jQuery (不是经过测试的代码):
;(function($){
$.fn.changeToOption = function(n) {
var option;
option = this.find('option').eq(n);
if (option.prop('selected',true)) {
this.change();
}
return this;
}
})(jQuery)
然后简单地说:
$select.changeToOption(0);