因此,我在编写的Web应用程序中遇到了一个非常奇怪的错误。如果我在计算机(windows / linux / ios)上运行它,则没有此问题。但是,当我在iPhone或iPad上运行它时,会在特定位置显示NaN

所以我想计算给定值的百分比。这就是我在js中捕获td字段的方式:

var total_vend = document.getElementById("tot_vend").innerHTML;
var max_production = document.getElementById("tot_max").innerHTML;


很标准。然后,要计算百分比,我使用:

num = Math.floor(total_vend / max_production * 100);
text = num + "%"; //allows me to had the percentage symbol to the number


这是棘手的地方。我有4个地方可以执行此操作(4个具有不同值的不同帐户)。在只有一个会话中,我得到NaN

我已经将alert()total_vend都设置为max_production,并且在total_vend中我具有正确的值,但是在max_production中我得到了一个锚标记:<a href="tel:1367520">1367520</a>,并且其中包含的值就是我需要计算百分比。

读取值的table

<table id="totais_ano">
    <tr>
        <th>TProd</th>
        <th>TVend</th>
        <th>TMax</th>
        <th>TPass</th>
    </tr>
    <tr>
        <td id="tot_prod"><?php echo $total_prod; ?></td>
        <td id="tot_vend"><?php echo $total_vend; ?></td>
        <td id="tot_max"><?php echo $total_max; ?></td>
        <td id="tot_vend_passado"><?php echo $total_pass; ?></td>
    </tr>
</table>


谁能向我解释代码中到底发生了什么?就像我说的那样,只有当我使用iPhone或iPad访问Web应用程序中的特定帐户时,才会发生这种情况。

最佳答案

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)。确保处理这种可能性;)

09-19 18:24
查看更多