Не срабатывает последний цикл
Приветствую всех!
Не могу понять в чем дело. Перебираю массив следующим образом:
var all_id = arr_id[1].split(',');
var i;
for (i = 0; i < all_id.length; ++i) {
document.getElementById(all_id[i]).classList.remove('select');
};
});
Цикл срабатывает нормально до предпоследней записи в массиве. Если я вывожу на экран значение "all_id.length" то оно соответствует длине массива, но последняя итерация не срабатывает. В чем причина? |
arkadii_parovozov,
++i |
Не понял на что Вы намекаете. Почему, тогда, такая запись перебирает все циклы как надо:
var all_id = arr_id[1].split(',');
var i;
for (i = 0; i < all_id.length; ++i) {
$('#'+all_id[i]).removeClass("select");
};
});
? |
arkadii_parovozov,
Не знаю, что у вас в массивах...
<style>
.select {position:relative;
height:20px;
width:20px;
background-color:red
}
</style>
<div id='i1' class='select'></div>
<div id='i2' class='select'></div>
<div id='i3' class='select'></div>
<script>
var arr = document.querySelectorAll('.select'),
arr_id = [],
i;
for ( i = 0; i<arr.length;i++) {
arr_id [i] = arr[i].getAttribute('id');
}
for ( i = 0; i<arr_id.length;++i) {
document.getElementById(arr_id[i]).classList.remove('select');
}
</script>
|
Я ничего не понимаю.... Если я прописываю явно переменную:
var data0 = "text1(liuboi)&Бабушкинская,Речной вокзал,Тушинская,Академическая,Алтуфьево";то цикл срабатывает до конца, а если я этот-же текст вытаскиваю из ajax ответа:
var arr_id = data.split('&');
var all_id = arr_id[1].split(',');
то последний цикл не срабатывает. Если я вывожу ответ от сервера "алертом" на экран и копирую данные с него и записываю в переменную, то цикл работает до конца. Не могу понять в чем дело. |
arkadii_parovozov,
Ну вы проверьте, что у вас в массивах
var data = "text1(liuboi)&Бабушкинская,Речной вокзал,Тушинская,Академическая,Алтуфьево";
var arr_id = data.split('&');
alert(JSON.stringify(arr_id));
var all_id = arr_id[1].split(',');
alert(JSON.stringify(all_id));
Здесь - из строки - все нормально. А из ответа? |
После первого сплита показывает:
"текст","Бабушкинская,Речной вокзал,Тушинская,Академическая,Алтуфьево,Пятницкое шоссе\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n" После второго: "Бабушкинская","Речной вокзал","Тушинская","Академическая","Алтуфьево","Пятницкое шоссе\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"Получается что последний id отличен от оригинала, но тогда другой вопрос, откуда он берет эти переносы? В файле обработчике вывод заканчивается так: echo "&$st_ind"; |
Мммм-да.... Оказывается это приклеились переносы строк в файле обработчике. Поменял echo на exit(); и все работает нормально.
Вот так всегда, из-за какой-то мелочи можно весь мозг вынести. Спасибо за помощь Dilettante_Pro! |
| Часовой пояс GMT +3, время: 12:46. |