1

十分に単純に思えますが、機能していません。

動的に生成された s から一握りのカスタム データ属性を取得しようとしています<option>

オプションは正しく生成され、構文は正しいです。

<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。あなたの場合、selectelementから属性値を取得しようとしています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 に答える