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' и т.д.
Ответы
Ответ 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();
});