web-dev-qa-db-ja.com

javascript / jQuery-Forループ

クエリajax応答があり、それを使用して配列変数を設定します。とにかく「Forループ」を使用して#nameに変更することで、各配列要素を設定するコード行を記述する必要がなくなりました。

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

したがって、「#event00」をforループで使用して「#event01」などに変更できます。

17
user1216855

通常のforループを使用し、セレクターで使用されるインデックスをフォーマットします。

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());
}
39
Greg

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

var arr = [];

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

[attr^=selector]セレクターは、attr属性が指定された文字列で始まる要素と一致します。この方法では、「イベント」の後の数字は気にしません。

8
julioolvr

.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
Bot