Не срабатывает последний цикл
Приветствую всех!
Не могу понять в чем дело. Перебираю массив следующим образом: 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, время: 00:06. |