こんにちは。
javascriptであるものを作っていて、その中にループ処理があるのですが、ループする順番がめちゃくちゃなんです。
forでもwhileでもダメです。25回ループしたいです。
コードは下記。
xhtml
1<ul class="result"></ul>
javascript
1// while 2var i = 1; 3while (i < 26){ 4 $('.result').append('<li>' + i + '</li>'); 5 i++; 6} 7 8//for 9for (var i = 1; i < 26; i++) { 10 $('.result').append('<li>' + i + '</li>'); 11} 12 13//どっちもダメ
結果がこうなります。
1 2 3 4 5 6 7 8 10 9 11 12 16 15 14 17 13 18 19 24 22 21 23 20 25
ところどころ順番がメチャクチャになっています。
あと、これ、全部こうなるのではなく、リロードしたら毎回順番が変わります。
そうじゃなくて、「1・2・3・4・5・6・7・・」と、順番通りに動かしたいです。
どうすればいいのでしょうか?
仕様なのでしょうか?解決策やサンプルコードなど提示していただければうれしいです。
よろしくお願いします。
**補足**
めちゃくちゃなコードですが、javascriptの全体の主なコードを貼り付けます。
確認していただけると幸いです。
ちなみに、データベースに接続するPHPと通信して、クイズアプリのようなものを作っています。
console.logや$(function(){など、要らない部分は削除しているので、必要な部分だけとなります。
javascript
1function mark_question (id, answer, while_i) { 2 var URI = 'api.php'; 3 var dataURI = 'id=' + id + '&answer=' + answer; 4 if (answer === undefined) { 5 answer = '5'; 6 } 7 $.ajax({ 8 type: 'GET', 9 url: URI, 10 dataType: 'json', 11 data: dataURI, 12 success: function(json){ 13 console.log('success'); 14 if(json[detail] == 'true') { 15 $('#result_detail:last-child').append('<li>' + while_i + '</li>'); 16 } else { 17 $('#result_detail:last-child').append('<li>' + while_i + '</li>'); 18 } 19 }, 20 error:function(json){ 21 console.log('error'); 22 } 23 }); 24} 25//---------------- 26for (var i = 1; i < 26; i++) { 27 var id = $('.c-' + i).attr('data-id'); 28 var answer = $('.c-' + i).attr('data-answer'); 29 mark_question(id, answer, i); 30}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/27 10:56
2015/07/27 12:21
2015/07/28 12:04
2015/07/28 18:45