在javascript中增加整数会导致NaN

我试图调试这个,但我只是不明白为什么每当我将它递增1时变量disp就会以NaNforms返回。 如果有人能够阐明为什么会发生这种情况,我会十分感激它。

var votePages = new Array(); votePages[0] = "http://minecraftservers.org/vote/100924"; votePages[1] = "http://www.planetminecraft.com/server/revolutionarycraft---ssdfactionsecosurvivalgrief/vote/"; votePages[2] = "http://minecraftservers.net/server/66267/vote/"; votePages[3] = "http://mineservers.com/server/11885/vote"; votePages[4] = "https://minestatus.net/92187-revolutionary-craft/vote"; var disp = 0; $("#dispVotePage").attr("src", votePages[disp]); $(document).on('click', '#next', function(){ $("#dispVotePage").attr("src", ''); var disp = disp++; alert(disp); $("#dispVotePage").attr("src", votePages[disp]); if (disp !== 0) { $("#previous").css('display', 'block'); } }); $(document).on('click', '#previous', function(){ $("#dispVotePage").attr("src", ''); var disp = disp--; $("#dispVotePage").attr("src", votePages[disp]); if (disp === 0) { $("#previous").css('display', 'none'); } }); 

你会看到我有警报(disp),它用于调试目的。

重新声明disp 。 你宣布两次:

 var disp = 0; //Initial Declaration (Global) ...  ... $(document).on('click', '#next', function(){ $("#dispVotePage").attr("src", ''); var disp = disp++; //Re-declaration. Declares `disp` as a new local variable. alert(disp); $("#dispVotePage").attr("src", votePages[disp]); if (disp !== 0) { $("#previous").css('display', 'block'); } }); 

解决方案:要使用全局disp ,请不要再次声明它。 只需使用disp++

看起来你在函数中声明了一个新的disp变量,即使你已经在顶部的数组之后已经这样做了。 摆脱var disp并只增加或减少它。

看起来它可能是由于var disp = disp++尝试disp=disp+1 (没有var)。 同样的减量。 我认为应该解决这个问题!