@grenline123123

Работа с циклом?

Почему я
тут: res[i][0]
и тут: res[i][1]
получаю одно и тоже значение 5 раз, то есть не новое,
но если я начну выводитьres[0][0] res[1][0] и так далее, то все будет в порядке.
var res = JSON.parse(msg),
			countJson = (res).length,
			i = 0;

			while(i < countJson) {
				$('.box-results-search').children(i).text(res[i][1]);
				$('.box-results-search').children(i).append('<input type="hidden" value="'+ res[i][0] +'">');
				$('.box-results-search').children(i).css('display','block');
				i++;
			}
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
.children(i)

Нет.

Так оно не работает.

Откуда вы взяли, что в children можно указывать индекс?

Этот метод ожидает, что будет передан селектор, а не индекс (бегом читать документацию). Селектор должен быть строкой - значения других типов игнорируются. Так что у вас на каждой итерации цикла обрабатываются все дочерние элементы, а не один.

Как бы мог выглядеть ваш "цикл":

$.each(res, function(i, n) {
  this
    .eq(i)
    .html(`${n[1]}<input type="hidden" value="${n[0]}">`)
    .css('display', 'block');
}.bind($('.box-results-search').children()));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@grenline123123 Автор вопроса
while(i < countJson) {
				$('.box-results-search .box-all-ress:nth-child('+ i +')').text(res[i][1]);
				$('.box-results-search .box-all-ress:nth-child('+ i +')').append('<input type="hidden" value="'+ res[i][0] +'">');
				$('.box-results-search .box-all-ress:nth-child('+ i +')').css('display','block');
				i++;
			}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы