尝试连接数字和字符串时出现 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 和数字:
- 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
更新
您应该使用 parseInt
或 parseFloat
将 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/
我正在尝试执行以下代码,但返回到页面上的 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 和数字:
- 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
更新
您应该使用 parseInt
或 parseFloat
将 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/