所以我在我写的网络应用程序中遇到了一个非常奇怪的错误。如果我在计算机(windows / linux / ios)上运行它比没有这个问题。但是,当我在iPhone或iPad上运行时,我会在特定位置获得ls|grep
。
所以我想计算一个给定值的百分比。这就是我捕获js中的NaN
字段的方式:
td
非常标准。然后,为了计算百分比,我使用:
var total_vend = document.getElementById("tot_vend").innerHTML;
var max_production = document.getElementById("tot_max").innerHTML;
这是棘手的地方。我有4个地方在这里运行(4个不同的帐户有不同的值)。只有一次会议我得到num = Math.floor(total_vend / max_production * 100);
text = num + "%"; //allows me to had the percentage symbol to the number
。
我已经NaN
同时alert()
和total_vend
以及max_production
我有正确的值,但是在total_vend
我得到了一个锚标记:max_production
及其包含的值是我计算百分比所需的值。
读取值的<a href="tel:1367520">1367520</a>
:
table
有人可以向我解释我的代码到底发生了什么吗?就像我说的那样,只有当我使用iPhone或iPad访问我的网络应用程序中的特定帐户时才会发生这种情况。
答案 0 :(得分:2)
我猜您应该将其更改为.textContent
:
var max_production = document.getElementById("tot_max").textContent.trim();
这里有一个简单的测试:
var a = document.getElementById('phone').textContent.trim();
alert(a);
<div id='phone'><a href="tel:1367520">1367520</a></div>
作为旁注,我会说你应该修剪()删除前导/尾随空格的值。
答案 1 :(得分:1)
var total_vend = document.getElementById("tot_vend").innerHTML;
var max_production = document.getElementById("tot_max").innerHTML;
这两个变量包含一个字符串。您需要将它们的值转换为如下所示的整数:
var total_vend = parseInt(document.getElementById("tot_vend").textContent);
var max_production = parseInt(document.getElementById("tot_max").textContent);
此外,如果max_produtions
等于0,则除法将失败(不能除以0)。一定要处理这种可能性;)
答案 2 :(得分:0)
使用以下代码获取从td
var total_vend = document.getElementById("tot_vend").innerHTML;
total_vend = parseInt(total_vend);
var max_production = document.getElementById("tot_max").innerHTML;
max_production = parseInt(max_production);