@vlad1753

Не работает функция Jquery в цикле, что делать?

Написал небольшой поиск с использованием AJAX...

HTML:
<div id="finder_line">
          <form class="searth-form">
          <span class="text-find">Предмет:</span>
           <select name="sub" style="font-family: sans-serif;" id="sub">
            <option>Математика</option>
            <option>Українська мова</option>
            <option>Англiйська мова</option>
            <option>Німецька мова</option>
            <option>Русский язык</option>
            <option>Я досліджую світ</option>
            <option>Основи здоров'я</option>
            <option>Природознавство</option><br>
        </select>
        <span class="text-find">Клас:</span>
          <input type="number" min="1" max="11" name="form" value="1" id="form">
          <button type="button" class="button_finder" onclick="find()">Знайти</button>  
        </form>
    </div>

JS:
function find() {
	//Данные из формы
	var form = $('#form').val(); 
	var sub = $('#sub').val(); 
	var button = $('.button_finder');
	$('#result_block').css('display','block'); //Открыть окно
 	$.get('js/searth/go_to_server.php',{//Делаем AJAX запрос
 		form: form,
 		sub: sub,
 	},function(data){//Эта функция выполняется когда сервер успешно ответит
 		data = JSON.parse(data);
        for (var i = 0; i < data.length; i++) {
         	console.log(data[i]['id']);//В консоль все выводтся как надо
      		$('#test').text(data[i]['id']);//Вот тут свойство text() не работает

        }
 	});
}
function close_block(){ //Закрыть окно
	$('#result_block').css('display','none');
}


Как видим, цикл for должен выводить все данные с ключом 'id', но выводит он только последние значение...

В консоль всё выводится отлично...

Заранее благодарен за помощь))
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
hzzzzl
@hzzzzl
цикл for должен выводить все данные с ключом 'id', но выводит он только последние значение

не, он все значения и выводит в один и тот же блок, перезатирая предыдущее содержимое

var txt = ''
for (var i = 0; i < data.length; i++) {
  console.log(data[i]['id']);//В консоль все выводтся как надо
  txt = txt + data[i]['id'] + ' ' // пробел между элементами для наглядности
}
$('#test').text(txt)  // всё сразу
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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