NaN作为函数结果而不是必需的整数出现问题
Issues with NaN as function result instead of necessary integer
这篇文章是我之前关于JS跨度值的文章的延续。在下面的几行中,当我在Chrome中打开Javascript控制台时,我会在标签的末尾看到我的值。假设他们分别是20岁和10岁。然而,这些值不在实际的html代码中(如下所示)。在我的javascript函数中,我只是试图"提取"span值,对它们进行除法,然后返回一个值。我的结果一直是"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代码中不可见的跨度的实际值。我怀疑数据类型有冲突?
这是我最初文章的链接:如果这看起来很复杂,将span值存储到javascript变量中以供参考。
G2LineSpeedGE
不是数字,G2rCurrentAimPsSpd
也不是。
<span id ="LineSpeedGE" class='PIData' data-tag='42'></span>
将起作用。
首先,您的选择器是错误的。
$("LineSpeedGE.PIData[data-tag]")
这将查找名为LineSpeedGE
(<LineSpeedGE/>
)的元素。你可能想要:
$("#LineSpeedGE.PIData[data-tag]")
#
使其搜索ID(如果您按ID搜索,则不需要.PIData[data-tag]
)。
此外,data-tag
值不是数字。它们是G2LineSpeedGE
和G2rCurrentAimPsSpd
,它们不是数字。
您的选择器错误,因此没有返回任何元素。
$("LineSpeedGE.PIData[data-tag]")
它缺少#
,所以您正在寻找一个名为LineSpeedGE的元素,而不是id。
$("#LineSpeedGE.PIData[data-tag]")
AimPsSpd
也是如此。缺少#
此外,G2LineSpeedGE
是一个字符串,而不是一个数字,因此在运行parseInt时也会产生NAN。
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 检测个位数整数时正在转换毫秒
- 使用jquery进行整数比较时遇到问题
- NaN作为函数结果而不是必需的整数出现问题
- 在mousedownevent上从1-100生成10个随机整数时遇到问题
- JQuery -奇数整数/字符串问题
- 使用图表.js的整数问题