到目前为止我的代码:
$('input.percent').change(function() {
var totalup = 1;
var totalup = totalup*1;
$('input.percent').each(function(){
var current = $(this).val();
var curvalue = current * 1;
console.log(curvalue);
console.log(totalup);
var totalup = curvalue + totalup;
});
});
这应该是不道德的。从零值开始,获取每个输入的值,将其添加到该总计值。控制台日志总是显示UNDECLARED或NaN总计,但是如果我删除了总计的最后一次取消(它增加了总计),它突然不会变为未定义或者是南。
为什么这不是不道德的!我必须遗漏一些愚蠢的东西,或Javascript只是STINKS!
提前感谢您的帮助!
答案 0 :(得分:5)
var percentInputs = $('input.percent');
percentInputs.change(function() {
var total = 0;
percentInputs.each(function(){
total += Number($(this).val());
});
});
缓存这些选择器也是个好主意。
答案 1 :(得分:2)
主要问题是声明已声明的字段。为var
的第二次和第三次分配留下totalup
关键字,它将起作用。
答案 2 :(得分:0)
在计算示例时添加parseInt()
var totalup = parseInt(curvalue) + parseInt(totalup);
答案 3 :(得分:0)
好!这是问题出现的地方!!!!
撰写时:
var FOO = 'whatever';
...在函数内部,它是一个LOCAL VARIABLE!如果你只是去:
FOO = 'whatever';
您点击了全局变量(在函数外部声明的变量)。
因此,虽然上面的代码是解决方案,但这是解决问题的解决方案所在!