【发布时间】:2019-12-05 21:48:03
【问题描述】:
我有 4 个字段需要总结,我用 $('select :selected').each(function() { 总结但不知何故,下面的代码输出 99 而它需要输出 72。
// Count for ShowerCoins
$(document).ready(function() {
$('select.countForShowerCoins').on('change', function() {
var sum = 0;
$('select :selected').each(function() {
sum += Number($(this).val() * 3) * $('select[name=howManyNights]').val();
});
$(".result").html(sum);
});
});
sum 是“4 个输入字段,每个字段的数值为 2”,是 8 的总和。然后乘以 3 即为 24,然后将其乘以夜晚的数量,即 3。24 * 3 = 72。但不知何故,我得到了 99 的输出。
有人知道这是怎么回事吗,我错过了什么吗?我在$('select[name=howManyNights]').val(); 上使用了parseInt(,但这并没有改变任何东西。我注意到这是因为sum,因为当我用静态数字替换它时,计算有效。
但我不知道如何解决。
【问题讨论】:
-
如果您可以创建代码的 jsfiddle/stackblitz 那就太好了。
-
更好:使用Stack Snippets cc @PranavRamachandran
-
请注意,
$(this).val()返回一个字符串。您应该使用Number($(this).val()),而不是Number($(this).val() * 3)。两种方式都没有关系;我们真正需要的是minimal reproducible example,这样我们就可以重现这种情况。
标签: jquery sum calculation multiplication