Задать вопрос
@olifem

Почему не отслеживается переменная цикла?

Есть вот такой вот код, который должен 3 раза загрузить страницу по ссылке в разные блоки. А он загружает 3 раза в последний блок который равен последней итерации цикла (text).
function showContent(lang) {		
		switch(lang){
			case 'ru':
			var link = 'ru.html'; 
			break;
			
			case 'en':
			var link = 'en.html'; 
			break;
		}
		
		var context = ['about', 'info', 'text'];
		
			
			for(var i=0; i<3; i++){	
				alert(i);
				cc = document.getElementById(context[i]);
				var http = createRequestObject();	
				
				
				if( http ) {
					http.open('get', link);							
					http.onreadystatechange = function () {			
						cc.innerHTML = http.responseText;
					}
					http.send();    
				} else {
					document.location = link;
				}
			}

		
	}


<input onclick="showContent('ru')" type="button" value="RU"> 
	<input onclick="showContent('en')" type="button" value="EN">
	
	<div id="about" style="padding:20px; outline: 3px solid red;">1
	</div>
	<div id="info" style="padding:20px; outline: 3px solid blue;">2
	</div>
	<div id="text" style="padding:20px; outline: 3px solid green;">3
	</div>


Вопрос такой, почему функция выводит только последнее значение из цикла и как это выполнить загрузку для каждого блока?
  • Вопрос задан
  • 186 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
evgeniy8705
@evgeniy8705
Повелитель вселенной
const cc = document.querySelector(`#${context[i]}`);

Demo
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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