2016-04-19 13 views
1


私はajaxを使ってPHPから配列を取得しています。アヤックスでは、特定の部分を特定のdivに配置するために配列を分解したいと思います。
私はどこにフィットし、それらをそこに置いた部品を選択し、ここでのコードを作っ:whileループがjqueryの特定の数学関数でクラッシュする

while (array[x] != null) { 
    y = 0; 
    if (2 < x) { 
    if (x == 3) { 
     x = 0; 
     y = x; 
    } else { 
     y = x/2 
    } 
    } 
    setTimeout(function() { 
    if (y == 0 || x % 3 === 0) { 
     var namestring = array[y]; 
     var namestring = array[y].replace('[', ''); 
     var namestring = namestring.replace('[', ''); 
     var namestring = namestring.replace('"', ''); 
     var namestring = namestring.replace('"', ''); 
    } 
    if (y % 2 != 0 || y % 3 != 0 && x > 0) { 
     alert(y); 
     var date = array[y] 
     var date = date.replace('"', ''); 
     var date = date.replace('"', ''); 
    } 
    if (x % 2 == 0 && x > 0) { 
     var text = array[y]; 
     var text = text.replace('"', ''); 
     var text = text.replace('"', ''); 
     var text = text.replace("]", ''); 
     var text = text.replace("]", ''); 

     createcard(namestring, date, text); 
    } 
    }, 500); 
    if (x > 500) { 
    break; 
    }; 
    x = x + 1; 
} 

問題はこの部分ということです:

if(2 < x) { 
    if (x == 3) { 
     x = 0; 
     y = x; 
     } else { 
      y = x/2 
    } 
} 

は、プログラムがクラッシュします。私はそれを持っていない場合、それは正常に動作します。また、私はこれを持っていない場合、私の問題は機能しません。なぜこうなった?
ありがとう!

+0

それはないかもしれませんが、[ループの内側にはJavaScript閉鎖](http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example)を見てみましょうあなたの現在の問題の原因は、ある時点で問題になるだろう –

+0

問題が発生している行を条件ブロックすると、urの各行の後に警告することで確認できます。 – Aparna

答えて

0

私はそれを解決しました!

while (array[y] != null) { 
       if (y == 0 || y % 3 === 0) { 
        alert(y); 
        var namestring = array[y]; 
        alert(namestring); 
        var namestring = namestring.replace('[',''); 
        var namestring = namestring.replace('[',''); 
        var namestring= namestring.replace('"', ''); 
        var namestring= namestring.replace('"', ''); 
        y++;  
       } 
       if (y % 2 != 0 || y % 3 != 0 && x > 0) { 
        var date = array[y] 
        var date = date.replace('"', ''); 
        var date = date.replace('"', ''); 
        y++; 
       } 
       if (y % 2 == 0 && y > 0) { 
        var text = array[y]; 
        var text = text.replace('"', ''); 
        var text = text.replace('"', ''); 
        var text = text.replace("]", ''); 
        var text = text.replace("]", ''); 
        y++; 

        createcard(namestring,date,text); 
       } 
      if (y > 500) { 
       break; 
      };  
     } 
関連する問題