Javascript jquery将数据属性传递给回调函数
嘿,伙计们,我有下面的函数,其中obj是一个表行Javascript jquery将数据属性传递给回调函数,javascript,jquery,Javascript,Jquery,嘿,伙计们,我有下面的函数,其中obj是一个表行 calculate: function(obj) { var sum = 0; $('option:selected', obj).attr('value', function(i,v){ sum += Number(v); }); $('td:last', obj).text(sum); HoursSum.table.trigger('sumChanged', sum); } 此时,它正在正确地检索
calculate: function(obj) {
var sum = 0;
$('option:selected', obj).attr('value', function(i,v){
sum += Number(v);
});
$('td:last', obj).text(sum);
HoursSum.table.trigger('sumChanged', sum);
}
此时,它正在正确地检索value属性。我的问题是:
如何访问同一选定选项的数据
属性?我试过:
('option:selected', obj).data('duration', ....
.data('data-duration')
.attr('duration')
然而,它们似乎都不起作用。jQuery文档说,data()
应该可以做到这一点,但在本例中,由于某种原因,它没有做到。有什么想法吗
示例HTML
挑选
测试
测试1
您可以尝试以下代码。但是我们需要查看您的HTML以帮助您编写更好的代码
calculate: function(obj) {
var sum = 0;
$('option:selected', obj).each(function(){
var data = $(this).data();
sum += data.duration;
});
$('td:last', obj).text(sum);
HoursSum.table.trigger('sumChanged', sum);
}
使用
$('option:selected',obj).data('duration')
。使用data()
时需要删除data-
前缀,使用attr()
时需要添加前缀;你的逻辑是颠倒的。投票决定以似曾相识的方式结束。。。请分享你的HTML。您是否碰巧通过AJAX填充了选项?您的意思是不是calculate:function(obj){var sum=0;$('option:selected',obj.each(function(){sum+=Number(this.value);});$('td:last',obj.text(sum);HoursSum.table.trigger('sumChanged',sum);}
通过php从数据库页面加载选项。HTML:选择test1这将返回未定义的数据。durationNevermind-错误在我这边。这很有效。它正确地获取值。非常感谢。