04/2020: respuesta anterior corregida
Usar : selector de psuedo seleccionado en las opciones seleccionadas y luego usar la función .val para obtener el valor de la opción.
$('select[name=selector] option').filter(':selected').val()
Nota al margen : usar el filtro es mejor que usar el :selected
selector directamente en la primera consulta.
Si está dentro de un controlador de cambios, puede usar simplemente this.value
para obtener el valor de la opción seleccionada. Ver demo para más opciones.
//ways to retrieve selected option and text outside handler
console.log('Selected option value ' + $('select option').filter(':selected').val());
console.log('Selected option value ' + $('select option').filter(':selected').text());
$('select').on('change', function () {
//ways to retrieve selected option and text outside handler
console.log('Changed option value ' + this.value);
console.log('Changed option text ' + $(this).find('option').filter(':selected').text());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<select>
<option value="1" selected>1 - Text</option>
<option value="2">2 - Text</option>
<option value="3">3 - Text</option>
<option value="4">4 - Text</option>
</select>
Vieja respuesta:
Editar: como muchos señalaron, esto no devuelve el valor de la opción seleccionada.
~~ Use .val para obtener el valor de la opción seleccionada. Vea abajo,
$('select[name=selector]').val()~~