On select change, get data attribute value
You need to find the selected option:
$(this).find(':selected').data('id')
or
$(this).find(':selected').attr('data-id')
although the first method is preferred.
document.querySelector('select').onchange = function(){
alert(this.selectedOptions[0].getAttribute('data-attr'));
};
Try the following:
$('select').change(function(){
alert($(this).children('option:selected').data('id'));
});
Your change subscriber subscribes to the change event of the select, so the this
parameter is the select element. You need to find the selected child to get the data-id from.