jQuery的select更改事件获取选定的选项

我用这个绑定了一个select元素的change事件:

$('select').on('change', '', function (e) { }); 

如何访问发生更改事件时select的元素?

 $('select').on('change', function (e) { var optionSelected = $("option:selected", this); var valueSelected = this.value; .... }); 

您可以使用jQuery查找方法

  $('select').change(function () { var optionSelected = $(this).find("option:selected"); var valueSelected = optionSelected.val(); var textSelected = optionSelected.text(); }); 

上述解决scheme完美的作品,但我select添加以下代码,他们愿意得到点击选项。 即使此select值没有改变,它也允许您获取选定的选项。 (仅限于Mozillatesting)

  $('select').find('option').click(function () { var optionSelected = $(this); var valueSelected = optionSelected.val(); var textSelected = optionSelected.text(); }); 

委托替代scheme

如果有人使用委托方法作为监听者,请使用e.target (它将引用select元素)。

 $('#myform').on('change', 'select', function (e) { var val = $(e.target).val(); var text = $(e.target).find("option:selected").text(); //only time the find is required var name = $(e.target).attr('name'); } 

JSFiddle演示

我觉得这个更短,更干净。 此外,如果存在多个项目,则可以遍历所选项目;

 $('select').on('change', function () { var selectedValue = this.selectedOptions[0].value; var selectedText = this.selectedOptions[0].text; }); 
 <select id="selectId"> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> </select> $('#selectId').on('change', function () { var selectVal = $("#selectId option:selected").val(); }); 

首先创build一个select option 。 之后使用jquery你可以得到当前select的值,当用户更改select option值。

另一个简短的方法来获得选定的价值,

 $('#selectElement').on('change',function(){ var selectedVal = $(this).val(); ^^^^ ^^^^ -> presents #selectElement selected value | v presents #selectElement, });