Есть вот такой вот код, который должен 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>
Вопрос такой, почему функция выводит только последнее значение из цикла и как это выполнить загрузку для каждого блока?