Javascript/jQuery - для цикла - программирование
Подтвердить что ты не робот

Javascript/jQuery - для цикла

У меня есть запрос ajax запроса, который затем я использую для установки переменных массива. В любом случае использовать "For Loop" для изменения в #name, чтобы мне не приходилось выписывать строку кода для установки каждого элемента массива.

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

Итак, '# event00' может использоваться в цикле for для изменения на '# event01' и т.д.

4b9b3361

Ответ 1

Используйте регулярный цикл и форматируйте индекс, который будет использоваться в селекторе.

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

Ответ 2

Как насчет этого?

var arr = [];

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

Селектор [attr^=selector] соответствует элементам, в которых начинается атрибут attr с указанной строкой, таким образом, вы не заботитесь о числах после "события".

Ответ 3

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