2012-02-29 16 views
16

私は配列変数を設定するために使用するクエリajaxレスポンスを持っています。 「For Loop」を#nameに変更して、各配列要素を設定するコード行を書き出す必要はありません。 javascript/jQuery - For Loop

array[0]=$('#event00',response).html(); 
array[1]=$('#event01',response).html(); 
array[2]=$('#event02',response).html(); 
array[3]=$('#event03',response).html(); 

だから '#のevent00は' あなたのために働く必要がある '#のevent01' など

+0

余分なゼロ '0'を削除します。それはあなたにたくさんの助けとなります、そして、信頼してください。 – Relic

+0

何があなたのために働いたのですか? – Greg

答えて

2

.each()に変更するループのために使用することができます。 http://api.jquery.com/jQuery.each/またはhttp://api.jquery.com/each/、または.mapを使用できます。

var newArray = $(array).map(function(i) { 
    return $('#event' + i, response).html(); 
}); 

編集:私はそれを使用しないことを推奨するので、先頭に0を追加しました。

あなたはそれがループのために定期的に使用し、セレクタで使用するインデックスをフォーマット

var newArray = $(array).map(function(i) { 
    var number = '' + i; 
    if (number.length == 1) { 
     number = '0' + number; 
    } 
    return $('#event' + number, response).html(); 
}); 
+2

'.map()'はさらに優れています。 –

+0

@MДΓΓellerLLroger、私はそれを追加します。 – Bot

+0

これは、問題のコードとどのように関連していますか?それは_setting_配列値ですか? 1行に '.html()'を単独で呼び出しても、何もしません。 – nnnnnn

34

を使用する必要がある場合。

var array = []; 
for (var i = 0; i < 4; i++) { 
    var selector = '' + i; 
    if (selector.length == 1) 
     selector = '0' + selector; 
    selector = '#event' + selector; 
    array.push($(selector, response).html()); 
} 
+0

完全に同意してください!ネイティブ関数は、ヘルパー関数よりも常に高速です。 –

6

このようなことはどうですか?

var arr = []; 

$('[id^=event]', response).each(function(){ 
    arr.push($(this).html()); 
}); 

[attr^=selector]セレクタはattr属性が与えられた文字列、あなたは「イベント」の後の数字を気にしないような方法で開始されている要素と一致します。