处理一些基本的添加令人难以置信的javascript失败!

时间:2010-12-08 07:05:05

标签: javascript jquery

这是杀了我的!我试图将四个字段的值加在一起,我得到了各种奇怪的结果!

到目前为止我的代码:

$('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!

提前感谢您的帮助!

4 个答案:

答案 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';

您点击了全局变量(在函数外部声明的变量)。

因此,虽然上面的代码是解决方案,但这是解决问题的解决方案所在!