私はドロップダウンを使用しています.Change()を使用して関数をトリガします。関数は基本的にgetJSON
を使用して特定のデータを取得し、その値に基づいてmp3ファイルの配列の文字列を作成する必要があります。forループの先頭に文字列変数がありません
以下のコードでは文字列を生成していますが、文字列には常にundefined
という接頭辞が付きます。
setTimeout
は、データが受信されるまで一定の遅延を提供することに気づくでしょう。以下の例では、静的な値を使用していますが、接頭辞はまだundefined
です。なぜ私が間違った方法で変数を定義した可能性がありますか分からない。
完全な例JSBin
$('.customSurah').change(function(){
//surahNo = $('#surah option:selected').val();
setTimeout(function(){
//countSpan = $('#surah-wrapper').children().length;
surahNo = 1;
countSpan = 7;
var i=0;
for (i = 0; i <= countSpan; i++) {
strCat += surahNo+"/"+i+".mp3,";
console.log(strCat);
}
}, 3000);
});
OUTPUT
undefined114/0.mp3,
undefined114/0.mp3,114/1.mp3,
undefined114/0.mp3,114/1.mp3,114/2.mp3,
undefined114/0.mp3,114/1.mp3,114/2.mp3,114/3.mp3,
undefined114/0.mp3,114/1.mp3,114/2.mp3,114/3.mp3,114/4.mp3,
undefined114/0.mp3,114/1.mp3,114/2.mp3,114/3.mp3,114/4.mp3,114/5.mp3,
undefined114/0.mp3,114/1.mp3,114/2.mp3,114/3.mp3,114/4.mp3,114/5.mp3,114/6.mp3,
ここで 'strCat'は定義されていますか?空の文字列として初期値で宣言し、それはうまく動作するはずです –
これは完全な例ですここでループのために定義されていますhttp://jsbin.com/nicutokago/edit?html,output – Learning