JavaScript 计算问题 - NaN 消息
我正在计算总数。我从 div 中得到总和值。但总的来说,我得到的不是数字(NaN - 不是数字)
JavaScript 函数:
<script type="text/javascript">
function calculateTotal(){
var total = document.getElementById('valor1').innerHTML*1 + document.getElementById('valor2').innerHTML*1 + document.getElementById('valor3').innerHTML*1 + document.getElementById('valor4').innerHTML*1 + document.getElementById('valor5').innerHTML*1 + document.getElementById('valor6').innerHTML*1;
document.getElementById('total').innerHTML = total;
}
</script>
编辑:
我发现了错误,我在 DIV 内有一个结束标记,如下所示:
<center><div id="valor1"></center></div>
更改为:
<center><div id="valor1"></div></center>
I'm calculating a total number. I get the sum values from div's. But in total, instead of numbers I get (NaN - Not a Number)
JavaScript Function:
<script type="text/javascript">
function calculateTotal(){
var total = document.getElementById('valor1').innerHTML*1 + document.getElementById('valor2').innerHTML*1 + document.getElementById('valor3').innerHTML*1 + document.getElementById('valor4').innerHTML*1 + document.getElementById('valor5').innerHTML*1 + document.getElementById('valor6').innerHTML*1;
document.getElementById('total').innerHTML = total;
}
</script>
EDIT:
I found the error, I had a closing tag inside the DIV's like this:
<center><div id="valor1"></center></div>
Changed to:
<center><div id="valor1"></div></center>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您不能直接使用 document.getElementById('valor1').innerHTML 。您必须将其转换为数字。请尝试这个。
对每个有编号的 div insideHTML 执行此操作。
如果 div 为空或 div html 无法转换为数字,上面的行将帮助您将 0 分配给值。
You cannot use document.getElementById('valor1').innerHTML directly. You have to convert this to number. Please try this.
Do this for each div innerHTML which have number.
The above line will help you to assign 0 to value if div is empty or div html cannot be converted to a number.
在执行操作之前使用
parseFloat(document.getElementById('x').innerHTML)
将它们转换为数字:您可能还想检查它们是否是数字,这里有一个使用
isNaN
:Use
parseFloat(document.getElementById('x').innerHTML)
to convert them to numbers before performing operations:You also may want to check them if they're numeric, here's a simple test using
isNaN
:HTML:
JavaScript:
对工作和演示进行一些优化。
但为什么停在这里呢? :) 我们可以让它变得更好(我认为):
以及更新的演示。
编辑:Chrome 上没有错误Mozilla(Linux)。
HTML:
JavaScript:
A little optimization of the work and demo.
But why stop here? :) we can make it even better ( I think ):
And the updated demo.
Edit: no errors on Chrome & Mozilla (Linux).
尝试使用 parseInt() 等
,
这将确保您从字段中得到的实际上是一个数字
try using parseInt() as in
etc etc
this will ensure that what you're getting out of the fields is in fact, a number
您是否尝试将这些部分放入括号中?
请参阅:http://rx4ajax-jscore.com/ecmacore/operator/predence.html
更好 - 使用 parseInt(var string) 函数;
Did you try to put these parts into brackets?
See: http://rx4ajax-jscore.com/ecmacore/operator/predence.html
Even better - use the parseInt(var string) function;