Javascript 对于由所有整数生成的值,我不断得到NaN
我正在尝试编写一个基于jQuery的数学程序,它将显示并平均我的测验分数。除了在我的for循环中我有:Javascript 对于由所有整数生成的值,我不断得到NaN,javascript,jquery,Javascript,Jquery,我正在尝试编写一个基于jQuery的数学程序,它将显示并平均我的测验分数。除了在我的for循环中我有: specQuizTotalValue += total; 对于全局设置为0的变量“specQuizTotalValue” 出于某种原因,我不断得到specQuizTotalValue的NaN,即使每次迭代中的typeof以及全局定义返回“number”。我还试着推一个数组,经过两次迭代,我得到了[NaN,16,36](16和36是正确的值) 这是小提琴- var specQuizUL=$(
specQuizTotalValue += total;
对于全局设置为0的变量“specQuizTotalValue”
出于某种原因,我不断得到specQuizTotalValue的NaN,即使每次迭代中的typeof以及全局定义返回“number”。我还试着推一个数组,经过两次迭代,我得到了[NaN,16,36](16和36是正确的值)
这是小提琴-
var specQuizUL=$('specqui')。长度;
var specQuizTotalValue=0;
对于(i=0;i,不基于0。在第一次迭代中
$('#specQuiz ul:nth-child(0) li:nth-child(2)')
将导致一个空的jQuery对象,因此.html()
将返回未定义的,parseInt(未定义)
返回NaN
将您的for
循环更改为从1开始:
for(i = 1; i <= specQuizUL; i++) {
for(i=1;i这一行是您的问题:
var pretot = $('#specQuiz ul:nth-child(' + i + ') li:nth-child(3)').html();
console.log(i,pretot,parseInt(pretot));
var total = parseInt(pretot);
当i
为0时,pretot
为undefined
,因为特定选择器没有选择任何内容。因此当pretot
为undefined时,parseInt(pretot)
的计算结果为NaN
,累积总数中的一个NaN
值将毁掉整个总数。FYI,NaN
是一个数值,不管它的名称如何。从1开始循环。我实际上是从1开始的,后来减去1-这仍然不能完全回答我的问题,但我找到了答案使用信息!第n个子选择器是故意使用的,并且正在选择正确的li元素,但是对于ul,我必须切换到eq()-结合在1开始我的循环!谢谢大家!!-这里更新了fiddle:如果其他人正在阅读此文档以获得类似问题的帮助!
var pretot = $('#specQuiz ul:nth-child(' + i + ') li:nth-child(3)').html();
console.log(i,pretot,parseInt(pretot));
var total = parseInt(pretot);