При выборе варианта выберите значение атрибута данных Следующий код возвращает '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> Ответ 1 Вам нужно найти выбранную опцию: $(this).find(':selected').data('id') или $(this).find(':selected').attr('data-id') хотя предпочтительным является первый метод. Ответ 2 Попробуйте следующее: $('select').change(function(){ alert($(this).children('option:selected').data('id')); }); Ваш абонент изменений подписывается на событие изменения выбора, поэтому параметр this является элементом выбора. Вам нужно найти выбранного дочернего элемента, чтобы получить идентификатор данных. Ответ 3 document.querySelector('select').onchange = function(){ alert(this.selectedOptions[0].getAttribute('data-attr')); }; Ответ 4 Vanilla Javascript: this.querySelector(':checked').getAttribute('data-id') Ответ 5 это работает для меня <select class="form-control" id="foo"> <option value="first" data-id="1">first</option> <option value="second" data-id="2">second</option> </select> и script $('#foo').on("change",function(){ var dataid = $("#foo option:selected").attr('data-id'); alert(dataid) });
Ответ 1 Вам нужно найти выбранную опцию: $(this).find(':selected').data('id') или $(this).find(':selected').attr('data-id') хотя предпочтительным является первый метод.
Ответ 2 Попробуйте следующее: $('select').change(function(){ alert($(this).children('option:selected').data('id')); }); Ваш абонент изменений подписывается на событие изменения выбора, поэтому параметр this является элементом выбора. Вам нужно найти выбранного дочернего элемента, чтобы получить идентификатор данных.
Ответ 3 document.querySelector('select').onchange = function(){ alert(this.selectedOptions[0].getAttribute('data-attr')); };
Ответ 5 это работает для меня <select class="form-control" id="foo"> <option value="first" data-id="1">first</option> <option value="second" data-id="2">second</option> </select> и script $('#foo').on("change",function(){ var dataid = $("#foo option:selected").attr('data-id'); alert(dataid) });