Javascript 自定义属性而不是val()
我从来都不需要jQuery来获取我在web上所能找到的东西。我正在尝试从select/option对自定义html属性进行“实时”计数 我使用了这个脚本,它工作得很好,但不幸的是,我需要value中的数据将其发送到PHP,并且需要使用自定义的data-attribute。我不知道如何访问选项而不是val()——我尝试了$ksm、$data('ksm')和其他一些奇怪的想法,但它不起作用 JS:Javascript 自定义属性而不是val(),javascript,jquery,html,Javascript,Jquery,Html,我从来都不需要jQuery来获取我在web上所能找到的东西。我正在尝试从select/option对自定义html属性进行“实时”计数 我使用了这个脚本,它工作得很好,但不幸的是,我需要value中的数据将其发送到PHP,并且需要使用自定义的data-attribute。我不知道如何访问选项而不是val()——我尝试了$ksm、$data('ksm')和其他一些奇怪的想法,但它不起作用 JS: // HTML(zaw1到zaw7完全相同): 尼基·佩德森(10.40) 尼尔斯·克里斯蒂安·
//
HTML(zaw1到zaw7完全相同):
尼基·佩德森(10.40)
尼尔斯·克里斯蒂安·艾弗森(9.58)
克里斯·霍尔德(9.28)
格雷格·汉考克(9.27)
您的KSM:-选择骑手-
我为我糟糕的英语感到抱歉:)你可以使用.attr()
我建议:
$('select').change(function(){
var self = $(this);
$('#sumaksm').text(self.find('option:selected').data('ksm'));
});
$('[id$=nr]').change(function(){
var total = 0;
$('[id$=nr]').each(function(){
total += parseFloat($(this).find('option:selected').data('ksm'));
});
$('#sumaksm').text(total);
});
但是,如果您确实(出于某种原因)希望在每次选择更改时对数据ksm
属性求和:
$('select').change(function(){
var self = $(this),
total = 0;
self.find('option').each(function(){
total += parseFloat($(this).data('ksm'));
});
$('#sumaksm').text(total);
});
按照加比的暗示(在下面的评论中),我建议:
$('select').change(function(){
var self = $(this);
$('#sumaksm').text(self.find('option:selected').data('ksm'));
});
$('[id$=nr]').change(function(){
var total = 0;
$('[id$=nr]').each(function(){
total += parseFloat($(this).find('option:selected').data('ksm'));
});
$('#sumaksm').text(total);
});
参考资料:
使用该方法
在演示通过jQuery获取元素数据,只需使用.data();例如:$(this.data('ksm')<代码>总数=总数+数字($(this).data('ksm'))代码>?
$('[id$=nr]').change(function(){
var total = 0;
$('[id$=nr]').each(function(){
total += parseFloat($(this).find('option:selected').data('ksm'));
});
$('#sumaksm').text(total);
});
$(window).load(function(){
$("[id$=nr]").change(function() {
var total = 0;
$('.zawodnik select').each(function() {
var option = this.options[ this.selectedIndex ];
total = total + parseFloat( $(option).data('ksm') );
});
$('div#sumaksm').html(total);
});
});