我在我选择的元素的变化事件上绑定了一个事件:
$('select').on('change', '', function (e) {
});
当发生更改事件时,我如何访问被选中的元素?
我在我选择的元素的变化事件上绑定了一个事件:
$('select').on('change', '', function (e) {
});
当发生更改事件时,我如何访问被选中的元素?
当前回答
可以使用jQuery的find方法
$('select').change(function () {
var optionSelected = $(this).find("option:selected");
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
上述解决方案工作完美,但我选择添加以下代码,他们愿意获得点击选项。它允许您获得所选选项,即使该选择值没有改变。(仅在Mozilla上测试)
$('select').find('option').click(function () {
var optionSelected = $(this);
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
其他回答
$('select').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
....
});
这也可以很好地工作
(函数(jQuery) { $(文档)时函数(){ $ (" # select_menu ") .change(函数(){ var selectedOption = $("#select_menu").val() }); }); }) (jQuery); < script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js " > < /脚本>
可以使用jQuery的find方法
$('select').change(function () {
var optionSelected = $(this).find("option:selected");
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
上述解决方案工作完美,但我选择添加以下代码,他们愿意获得点击选项。它允许您获得所选选项,即使该选择值没有改变。(仅在Mozilla上测试)
$('select').find('option').click(function () {
var optionSelected = $(this);
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
委托替代
如果有人正在为他们的侦听器使用委托方法,请使用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;
});