04/2020: Sửa câu trả lời cũ
Sử dụng : bộ chọn psuedo đã chọn trên các tùy chọn đã chọn và sau đó sử dụng hàm .val để lấy giá trị của tùy chọn.
$('select[name=selector] option').filter(':selected').val()
Lưu ý bên : Sử dụng bộ lọc sẽ tốt hơn sau đó sử dụng :selected
bộ chọn trực tiếp trong truy vấn đầu tiên.
Nếu bên trong trình xử lý thay đổi, bạn có thể sử dụng đơn giản this.value
để nhận giá trị tùy chọn đã chọn. Xem bản demo để có thêm tùy chọn.
//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>
Câu trả lời cũ:
Chỉnh sửa: Như nhiều người đã chỉ ra, điều này không trả về giá trị tùy chọn đã chọn.
~ ~ Sử dụng .val để lấy giá trị của tùy chọn đã chọn. Xem bên dưới,
$('select[name=selector]').val()~~