jquery selecionar evento de mudança obter opção selecionada

Eu limitei um evento no evento change dos meus elementos select com isto:

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

Como posso acessar o elemento que foi selecionado quando o evento de mudança ocorre?

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

Você pode usar o método de busca jQuery

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

A solução acima funciona perfeitamente, mas eu escolho adicionar o código a seguir para eles dispostos a obter a opção clicada. Permite obter a opção selecionada mesmo quando este valor de seleção não foi alterado. (Testado apenas com o Mozilla)

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

Alternativa Delegada

Caso alguém esteja usando a abordagem delegada para seu ouvinte, use e.target (ele se referirá ao elemento 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'); } 

Demonstração JSFiddle

Eu acho isso mais curto e mais limpo. Além disso, você pode percorrer itens selecionados se houver mais de um;

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

Primeiro crie uma select option . Depois disso, usando jquery você pode obter o valor atual selecionado quando o usuário alterar o valor da select option .

Outra maneira curta de obter valor do valor selecionado,

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