2016-04-28 131 views
0
$(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循环不作为警戒等工作('你好')。如果有人能看到这个问题,请告诉我。我的for循环不工作,我不知道为什么

编辑

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); 

这是完整的代码

+2

确实'max'有一个值? – WillardSolutions

+3

'onload'不是有效的jQuery方法。如果您在浏览器中打开开发人员工具并查看控制台,您会发现一个错误,指出这一事实。 – Jasper

+1

'alert'不在for循环之后。循环仅在文档加载后异步执行。当时警报应该已经显示。 – migg

回答

0

试试这个:!

/* 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)); 
}); 

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

[编辑]

关于你的整个代码,为什么你需要在文档准备好后循环?

为什么不初始化pi这样的:

var max=438; 
localStorage.setItem('max', max); 
var pi=[]; 
pi=JSON.parse(localStorage.getItem('pi')); 
for(var i = 0; i < max; i++) { 
    pi[i] = 1; 
} 
[...] 
+0

我不知道我为什么使用文档准备好,但当我拿走文档准备好alert()不起作用。另外我需要如果pi [i]没有设置,因为我使用该数组作为数字的数据库,并且需要能够增加数组中的值的数量,而不会影响已经设置的值,因为它们会随着更改投票功能。 –

+0

你可以看到在https://preview.c9users.io/ibricchi/memer/images/index.html –

+0

项目'localStorage'包含'{最大值: “438”,长度:1}'这就是为什么'localStorage.getItem ('pi')'为空,'pi'也是 – Mino

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事件来代替文档加载。

<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>

+0

谢谢你,但如果我以后该警报PI返回null而不是400数组的代码(最大设置为400) –

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'); 
1

我假设你有 “MAX” 设置为某个正数。 我认为问题是你编码为 $(document)。 的onload(... 时,你应该有编码 的$(document)准备(... 希望帮助 PK

+0

我改变它准备好了,但如果我提醒pi它返回null而不是400个数组的数组(最大设置为400) –

相关问题