2016-04-28 10 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ループでは動作しないと

編集

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

私はなぜドキュメントを使用していたのか分かりませんが文書を取り除くとすぐにアラート()が機能しません。また、私は数字のデータベースとして配列を使用していて、既に設定されているものに影響を与えずに配列の値の数を増やす必要があるので、pi [i]が設定されていない場合には必要です投票機能。 –

+0

あなたはhttps://preview.c9users.io/ibricchi/memer/images/index.htmlでプロジェクトを見ることができます –

+0

'localStorage'には' {max: "438"、length: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

私はこの後に警告すると、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

私はあなたには、いくつかの正の数に設定し、 "最大" を持っていると仮定します。 私は問題がコード化されたと思います $(文書)。 のonload(... あなたがコード化されている必要があります $(文書)準備(... 希望に役立ちます PK

+0

私はそれをreadyに変更しましたが、私がpiに警告すると、400の配列ではなくヌルを返します(最大値は400に設定されています)。 –

関連する問題