我的for循环不起作用,我不知道为什么

时间:2016-04-28 17:15:53

标签: javascript jquery

$(document).onload(function(){
    for (var i = 0; i <max; i++) {
        if(pi[i]===undefined||pi[i]===null||pi[i]==0){
            pi[i]=1;
        }
    }
});
alert('hello');

我安装了jQuery并且所有变量都在代码中提前设置,但是for循环之后的任何内容都没有工作,例如警报(&#39; hello&#39;)。如果有人能看到这个问题,请告诉我。

修改

var max=438;
localStorage.setItem('max', max);
var pi=[];
pi=JSON.parse(localStorage.getItem('pi'));
var i=localStorage.getItem('i');
var url1=Math.floor((Math.random() * max) + 1);
var url2=Math.floor((Math.random() * max) + 1);
if(url1==url2){

url2=url2+2;
if(url2>max){
    url2=url2-max;
}
}
document.getElementById('imgimg1').src='../img/'+url1+'.gif';
document.getElementById('imgimg2').src='../img/'+url2+'.gif';
var v1=url1-1;
var v2=url2-1;
function vote1() {
    pi[v1]=pi[v1]+(pi[v2]/pi[v1]);
    localStorage.setItem('pi',JSON.stringify(pi));
    location.reload();
}
function vote2() {
    pi[v2]=pi[v2]+(pi[v1]/pi[v2]);
    localStorage.setItem('pi',JSON.stringify(pi));
    location.reload();
}
$(document).load(function(){
    for (var i = 0; i <max; i++) {
        if(pi[i]===undefined||pi[i]===null||pi[i]==0){
            pi[i]=1;
        }
    }
});
alert(pi);

这是完整的代码

4 个答案:

答案 0 :(得分:1)

假设所有变量设置正确,您的代码应为:

$(document).load(function(){
    for (var i = 0; i <max; i++) {
        if(pi[i]===undefined||pi[i]===null||pi[i]==0){
            pi[i]=1;
        }
    }
    alert('hello');
});

也许这会有所帮助,但是,我不知道你将这些变量设置为什么。请注意,我使用的是jquery ready事件而不是文档加载。

&#13;
&#13;
<div id="message"></div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script>
  var max = 100;
  var pi = [];
  
  $(function() {
    for (var i = 0; i <max; i++) {
        if(pi[i]===undefined||pi[i]===null||pi[i]==0){
            pi[i] = 1;
        }
    }
    $('#message').text(pi.length);
});
</script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

$(document).onload(function(){
    for (var i = 0; i <max; i++) {
        if(typeof pi[i]==="undefined"||pi[i]===null||pi[i]==0){
            pi[i]=1;
        }
    }
});
alert('hello');

答案 2 :(得分:1)

我假设您将“max”设置为某个正数。 我认为问题是你编码了   的$(document)。的onload (... 的 什么时候你应该编码   的$(document)的就绪(... 的 希望有所帮助! PK

答案 3 :(得分:0)

试试这个:

<div class="bubble">Hello</div>

它应该写'[1,1,1,1]'

<强> [编辑]

关于整个代码,为什么需要在文档就绪后循环?

为什么不这样初始化/* assuming this */ var max = 4; // for example var pi = [0, 0, 0, 0]; /* end assuming this */ $(document).ready(function() { for (var i = 0; i < max; i++) { if(pi && pi[i] && pi[i] < 0) { pi[i] = -1; } else { pi[i] = 1; } } alert(JSON.stringify(pi)); });

pi