这篇文章是我之前关于 JS 跨度值的文章的延续。 在下面的行中,当我在 Chrome 中打开 Javascript 控制台时,我在标签末尾附近看到了我的值。假设他们分别是 20 和 10。然而这些值并不在实际的 html 代码中(如下所示)。在我的 javascript 函数中,我只是尝试“提取”跨度值,将它们相除,然后返回一个值。我的结果一直是“NaN”。我是否需要在某处进行类型转换以使函数返回数值?
注意:值是从历史学家“PI”中读取的
<span id ="LineSpeedGE" class='PIData' data-tag='G2LineSpeedGE'></span> (value of 20)
<span id ="AimPsSpd" class='PIData' data-tag='G2rCurrentAimPsSpd'></span> (value of 10)
JS函数:
function divide(n1,n2)
{ ans = n1/n2;
document.write(" "+ans+"<BR>");
return ans;
}
var a = parseInt($("LineSpeedGE.PIData[data-tag]").data("tag"), 10);
var b = parseInt($("AimPsSpd.PIData[data-tag]").data("tag"), 10);
divide (a, b);
我得到的结果是 NaN,而不是预期的“2”。如果我将常规整数插入变量中,则实际除法就可以了。我似乎无法“捕获”在我的 html 代码中不可见的跨度的实际值。我怀疑数据类型发生冲突?
这是我原来帖子的链接:Storing a span value into a javascript variable如果这看起来很复杂,供引用。
最佳答案
G2LineSpeedGE
不是数字,也不是 G2rCurrentAimPsSpd
是。
<span id ="LineSpeedGE" class='PIData' data-tag='42'></span>
会起作用的。
关于javascript - 使用 NaN 作为函数结果而不是必要的整数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11727088/