Javascript 从动态标记计算for循环中的值
我有这个功能,我有一行的价格和人数的与会者选择。我试图根据更改/选择时从与会者(1,2,3,4,…)中选择的值计算所有价格的总和Javascript 从动态标记计算for循环中的值,javascript,jquery,Javascript,Jquery,我有这个功能,我有一行的价格和人数的与会者选择。我试图根据更改/选择时从与会者(1,2,3,4,…)中选择的值计算所有价格的总和 function paymentTicketChanges() { var sumTicketAttendee = 0; var sumTicketPrice = 0; $('.ticketing-row').each(function(index, el) { var me = $(this); var attendee = me.fi
function paymentTicketChanges() {
var sumTicketAttendee = 0;
var sumTicketPrice = 0;
$('.ticketing-row').each(function(index, el) {
var me = $(this);
var attendee = me.find('.payment_number_attendees').val();
var price = me.find('.payment_ticket_price').val();
if ((attendee >= 1) && (price >= 1)) {
sumTicketPrice += Number(price);
sumTicketAttendee += Number(attendee);
}
});
$('.payment_ticket_total span').text(sumTicketPrice * sumTicketAttendee);
$('.card-payment #amount').val(sumTicketPrice * sumTicketAttendee);
}
关于如何得到准确的结果,我做了很多。它将总结果相乘您将所有价格的总和乘以所有与会者的总和。您希望每行执行乘法:
function paymentTicketChanges() {
var total = 0;
$('.ticketing-row').each(function(index, el) {
var me = $(this);
// Convert to number early, note the +
var attendees = +me.find('.payment_number_attendees').val();
var price = +me.find('.payment_ticket_price').val();
if ((attendees >= 1) && (price >= 1)) {
// Do the sum here, add to total
total += attendees * price;
}
});
// Use total
$('.payment_ticket_total span').text(total);
$('.card-payment #amount').val(total);
}
最后,可以使用.toFixed(2)
打开total
实例:
$(“输入”)。在(“输入”上,paymentTicketChanges);
paymentTicketChanges();
函数paymentTicketChanges(){
var合计=0;
$(“.票务行”)。每个(功能(索引,el){
var me=$(此);
//尽早转换为数字,注意+
var attendes=+me.find('.payment_number_attendes').val();
var price=+me.find('.payment_ticket_price').val();
如果((与会者>=1)和&(价格>=1)){
//在这里求和,加到总数上
总计+=与会者*价格;
}
});
//使用总数
$('.payment_ticket_total span').text(total.toFixed(2));
$('.card payment#amount').val(toFixed(2))合计;
}
与会者
价格
总数:
数量:
您将所有价格之和乘以所有与会者之和。您希望每行执行乘法:
function paymentTicketChanges() {
var total = 0;
$('.ticketing-row').each(function(index, el) {
var me = $(this);
// Convert to number early, note the +
var attendees = +me.find('.payment_number_attendees').val();
var price = +me.find('.payment_ticket_price').val();
if ((attendees >= 1) && (price >= 1)) {
// Do the sum here, add to total
total += attendees * price;
}
});
// Use total
$('.payment_ticket_total span').text(total);
$('.card-payment #amount').val(total);
}
最后,可以使用.toFixed(2)
打开total
实例:
$(“输入”)。在(“输入”上,paymentTicketChanges);
paymentTicketChanges();
函数paymentTicketChanges(){
var合计=0;
$(“.票务行”)。每个(功能(索引,el){
var me=$(此);
//尽早转换为数字,注意+
var attendes=+me.find('.payment_number_attendes').val();
var price=+me.find('.payment_ticket_price').val();
如果((与会者>=1)和&(价格>=1)){
//在这里求和,加到总数上
总计+=与会者*价格;
}
});
//使用总数
$('.payment_ticket_total span').text(total.toFixed(2));
$('.card payment#amount').val(toFixed(2))合计;
}
与会者
价格
总数:
数量:
您需要添加您的HTML并向我们展示一个工作表,以便我们可以帮助您。因此,请指出一些问题。您正在对两个变量执行=
,然后将它们转换为数字。你觉得奇怪吗?@Shina你在对字符串值执行=
是我的观点。@Taplar-Ouch。。。“Taplar:这是真的,val
总是返回一个字符串(如果在空的jQuery集合上调用它,则undefined
),而s>=n
其中n
是一个数字,则将s
强制为数字,x*y
将x
和y
强制为数字。当然,依靠它不是个好主意。:-)太容易把+
放进去然后被咬。你需要添加你的HTML并向我们展示一个工作表,这样我们才能帮助你。所以,我想指出一点。您正在对两个变量执行=
,然后将它们转换为数字。你觉得奇怪吗?@Shina你在对字符串值执行=
是我的观点。@Taplar-Ouch。。。“Taplar:这是真的,val
总是返回一个字符串(如果在空的jQuery集合上调用它,则undefined
),而s>=n
其中n
是一个数字,则将s
强制为数字,x*y
将x
和y
强制为数字。当然,依靠它不是个好主意。:-)太容易把+
塞进去而被咬。