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



我正在尝试实现以下代码,但返回到页面上 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/

您正在尝试遍历$('#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/

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

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);

希望它能帮助你。干杯。

由于您正在执行算术运算,因此您需要确保您拥有的值是 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()

阅读:

  • Number() |多核
  • parseInt() |多核
  • parseFloat() |多核

您必须先将 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和Number的信息:

  • https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
  • https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/parseInt
  • https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/parseFloat

更新

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

相关内容

  • 没有找到相关文章

最新更新