尝试连接数字和字符串时出现 NaN Javascript & Jquery 错误

NaN Javascript & Jquery error when trying to concatinate a number and a string

我正在尝试执行以下代码,但返回到页面上的 id 的值填充了 NaN(不是数字)错误。有没有人对我在这里可以做什么有任何建议?我已经为此奋斗了一个多小时,因此非常感谢您的帮助。

setInterval( function(){ 
    var b = $('input#ien_val').val();
    var ien;
    for (ien = 0; ien < b; ien++) {
        var encuser = parseInt($('#enutt'+ien).html()); 
        var enteam = parseInt($('#enttotalday'+ien).html()); 
        var enoffset = (encuser/enteam)*100;
        $('#tten' + ien).html(enoffset + '%');
    }
},2000);

根据下面的评论,我在此处添加了一个问题示例 http://jsbin.com/tobilonepu/1/

由于您正在执行算术运算,因此您需要确保您拥有的值是 Number/integer/float 而不是 string.val() 通常会给你一个 string.

替换:

var encuser = $('#enutt'+ien).val(); 
var enteam = $('#enttotalday'+ien).val(); 

与:

var encuser = Number($('#enutt'+ien).val()); 
var enteam = Number($('#enttotalday'+ien).val()); 

您可以根据需要使用 parseInt()parseFloat() 而不是 Number()

阅读:

你得先把encuser和enteam转成数字。尝试这样的事情

setInterval( function(){ 
    var b = $('input#ien_val').val();
    var ien;
    for (ien = 0; ien < b; ien++) {
        var encuser = parseFloat($('#enutt'+ien).val()); 
        var enteam = parseFloat($('#enttotalday'+ien).val()); 
        var enoffset = (encuser/enteam)*100;
        $('#tten' + ien).html(enoffset + '%');
    }
},2000);

详细了解 parseInt、parseFloat 和数字:

更新

工作:http://jsbin.com/mezamakopi/2/edit

您应该使用 parseIntparseFloat 将 dom 值解析为数字。基于此,代码应如下所示。

setInterval( function(){ 
    var b = $('input#ien_val').val();
    var ien;
    for (ien = 0; ien < b; ien++) {
        // add parseInt
        var encuser = parseInt($('#enutt'+ien).val());
        // add parseInt
        var enteam = parseInt($('#enttotalday'+ien).val()); 

        var enoffset = (encuser/enteam)*100;
        $('#tten' + ien).html(enoffset + '%');
    }
},2000);

希望对您有所帮助。干杯。

您正在尝试遍历 $('#enttotalday'+ien),但那里只有一个值,所以它导致了问题。工作代码:

setInterval( function(){ 
    var b = $('input#ien_val').val();
    var ien;
    for (ien = 1; ien < b; ien++) {
        // add parseInt
        var encuser = parseInt($('#enutt'+ien).val());
        // add parseInt
        var enteam = parseInt($('#enttotalday').val()); 

        var enoffset = (encuser/enteam)*100;
        $('#tten' + ien).html(enoffset + '%');
    }
},2000);

这里是 jsbin - http://jsbin.com/nivoxuwufa/1/