看起来很简单,但它不起作用。
我正在尝试从动态生成的<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');
})
})
我已经完成了强制性的谷歌搜索无济于事......有什么好主意吗?
答案 0 :(得分: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');