-1

在ajax调用之后,我以这种方式填充一个选择选项,添加一个值属性和另一个名为jobDescription

$.each(obj, function(key, value) {   
                 $('#mySelect').append($("<option></option>").attr({"value": value.id, "jobDescription": value.jobDescription}).text(value.name)); 
            });

当我选择其中一个选项时,我需要获得jobDescription价值。为此,我尝试过这种方式

$("#mySelect").on('change', function() {
   console.log($(this).attr("jobDescription"));
});

但它返回undefined。有没有其他方法可以做到这一点?

4

1 回答 1

1

按照您的原始代码,您需要先添加find(':selected').,然后.attr才能找到当前选择<option>#mySelect.

$(function() {
  $("#mySelect").on('change', function() {
    console.log($(this).find(':selected').attr("jobDescription"));
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="mySelect">
  <option value="someValue" jobDescription="jobDesc1">Lorem Ipsum 1</option>
  <option value="someValue" jobDescription="jobDesc2">Lorem Ipsum 2</option>
  <option value="someValue" jobDescription="jobDesc3">Lorem Ipsum 3</option>
</select>

于 2018-09-24T07:43:57.230 回答