2016-04-28 129 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) –

相關問題