如何在jquery中选择更改时获取所选选项的数据值

mit*_*ain 3 html javascript jquery custom-data-attribute

我的 html 语法如下

<select id="category" name="category">
  <option value="0">Please Select</option>
  <option value="50" data-value="akne">ACNE</option>
  <option value="11" data-value="rednessbumps">Redness / Bumps</option>
  <option value="15" data-value="sunspotsfreckles">Sunspots / Freckles</option>
  <option value="16" data-value="agingwrinkles">Aging / Wrinkles</option>
  <option value="17" data-value="dry-sensitive">Dry Sensitive</option>
</select>
Run Code Online (Sandbox Code Playgroud)
<select id="category" name="category">
  <option value="0">Please Select</option>
  <option value="50" data-value="akne">ACNE</option>
  <option value="11" data-value="rednessbumps">Redness / Bumps</option>
  <option value="15" data-value="sunspotsfreckles">Sunspots / Freckles</option>
  <option value="16" data-value="agingwrinkles">Aging / Wrinkles</option>
  <option value="17" data-value="dry-sensitive">Dry Sensitive</option>
</select>
Run Code Online (Sandbox Code Playgroud)

在这里我无法获得data-valuein jquery,我应该如何获得?

Tam*_*n C 8

var abc = $('option:selected',this).data("value");
Run Code Online (Sandbox Code Playgroud)

尝试

var abc = $('option:selected',this).data("value");
Run Code Online (Sandbox Code Playgroud)
$("#category").change(function() {
  var selectedItem = $(this).val();
  var abc = $('option:selected',this).data("value");
  alert(abc);
});
Run Code Online (Sandbox Code Playgroud)


Una*_*rai 5

jQuery 有一个内置函数data可以做你想做的事:

var abc = $(this).data('value')
Run Code Online (Sandbox Code Playgroud)

但是,您必须首先找到所选选项,然后获取其值。

var abc = $(this).data('value')
Run Code Online (Sandbox Code Playgroud)
$("#category").change(function () {
   var selectedItem = $(this).val();
   var abc=$(this).find(':selected').data("value");
   console.log(abc)
  });
Run Code Online (Sandbox Code Playgroud)