下面的代码返回'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>
当前回答
这对我很有用
<select class="form-control" id="foo">
<option value="first" data-id="1">first</option>
<option value="second" data-id="2">second</option>
</select>
还有剧本
$('#foo').on("change",function(){
var dataid = $("#foo option:selected").attr('data-id');
alert(dataid)
});
其他回答
$('#foo option:selected').data('id');
香草Javascript:
this.querySelector(':checked').getAttribute('data-id')
这对我很有用
<select class="form-control" id="foo">
<option value="first" data-id="1">first</option>
<option value="second" data-id="2">second</option>
</select>
还有剧本
$('#foo').on("change",function(){
var dataid = $("#foo option:selected").attr('data-id');
alert(dataid)
});
试试下面的方法:
$('select').change(function(){
alert($(this).children('option:selected').data('id'));
});
您的更改订阅者订阅了选择的更改事件,因此this参数是选择元素。您需要找到要从中获取数据id的选定子节点。
alert($(this).first().data('id'));