下面的代码返回'undefined'…
$('select').change(function(){
alert($(this).data('id'));
});
<select>
<option data-id="1">one</option>
<option data-id="2">two</option>
<option data-id="3">three</option>
</select>
下面的代码返回'undefined'…
$('select').change(function(){
alert($(this).data('id'));
});
<select>
<option data-id="1">one</option>
<option data-id="2">two</option>
<option data-id="3">three</option>
</select>
当前回答
document.querySelector('select').onchange = function(){
alert(this.selectedOptions[0].getAttribute('data-attr'));
};
其他回答
您需要找到所选的选项:
$(this).find(':selected').data('id')
or
$(this).find(':selected').attr('data-id')
尽管第一种方法更可取。
香草Javascript:
this.querySelector(':checked').getAttribute('data-id')
也许是一种更优雅的方式
$('option:selected', this).data('id')
document.querySelector('select').onchange = function(){
alert(this.selectedOptions[0].getAttribute('data-attr'));
};
$('#foo option:selected').data('id');