1

看起来很简单,但它就是行不通。

我正在尝试从动态生成<option>的 s 中获取一些自定义数据属性。

选项生成正确,语法正确:

<option value="xml/airports/africa.xml" data-pos="5" data-airport="Noumérat - Moufdi Zakaria Airport">Noumérat - Moufdi Zakaria Airport</option>

但是,当我尝试控制台记录这些值时,我不断得到undefined.

它的脚本看似简单而简短:

$(document).ready(function() {
    var sel = $('select');  //its the only select on the page
sel.change(function() {
            //some variations I have tried:
          var n = sel.attr('data-airport');
          var f = sel.val());         //****this is pulling fine
          var i = sel.attr('data-pos');
          console.log(n, i);
          console.log(sel.attr('data-pos');
          console.log($(this).attr('data-pos');
          console.log($('select').attr('data-pos');
})
})

我做了强制性的谷歌搜索无济于事......伟大的想法任何人?

4

1 回答 1

2

属性被分配给option元素而不是select元素。在您的情况下,您正在尝试从select元素中获取属性值sel

相反,您需要从select元素中找到选定的选项。

它应该是

var opt = sel.find('option:selected')

var i = opt.attr('data-pos');
console.log(opt.data('pos');
console.log(opt.attr('data-pos');
于 2013-09-29T01:04:38.373 回答