Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Нужна помощь по циклам с массивом (https://javascript.ru/forum/events/25363-nuzhna-pomoshh-po-ciklam-s-massivom.html)

amsite 02.02.2012 22:24

Нужна помощь по циклам с массивом
 
var a = new Array();
var b = new Array();
var ch=document.getElementById("ch").length;
var i=0;
while(i<=ch){
a[i]=document.getElementById('chV'+i).value;
b[i]=document.getElementById("chN"+i).value;

i++;

}
alert(a[0]); <-не работает, а почему? разве массив не виден после цикла?

amsite 02.02.2012 22:33

Суть вопроса втом, что мне нужно наполнить массив через цикл, а потом пульнуть его Ajax-ом на сервер

amsite 02.02.2012 22:45

Цитата:

Сообщение от nasqad (Сообщение 154917)
document.getElementById("ch").length; :no:
document.getElementById("ch").value.length; :yes:
остальной изврат рабочий и дело не в нем

не канает! не алертиться!

Раед 02.02.2012 23:55

amsite,
document.getElementById(id)
возвращает 1 элемент(первый с заданным id) а не массив

amsite 03.02.2012 00:00

Цитата:

Сообщение от Раед (Сообщение 154953)
amsite,
document.getElementById(id)
возвращает 1 элемент(первый с заданным id) а не массив

Первый getElementById(id), тот, что перед циклом считывает колличество элементов в форме, далее на основании этого запускается цикл и в цикле считываются данные с инпутов посредством уникального Id, опятьже используя getElementById(уникальный id) мне необходимо, чтобы когда цикл закончился у меня получился готовый массив, как мне это реализовать? Я не силен в javascript, поэтому обращаюсь за помощью!

Раед 03.02.2012 00:10

Цитата:

Сообщение от amsite
Первый getElementById(id), тот, что перед циклом считывает колличество элементов в форме,


Цитата:

Сообщение от amsite
var ch=document.getElementById("ch").length;

замените на
var ch = document.getElementById('ch').getElementsByTagName('*').length;

amsite 03.02.2012 00:17

Цитата:

Сообщение от Раед (Сообщение 154956)
замените на
var ch = document.getElementById('ch').getElementsByTagName('*').length;

колличество у меня считывает, у меня не получается сделать массив в цикле и потом им пользоваться!

amsite 04.02.2012 01:53

Я решил самостоятельно эту проблему
var a = new Array();
var b = new Array();
var ch=document.getElementById("ch").length/2;
var i=0;
while(i<=ch-1){
a[i]=document.getElementById('chV'+i).value;
b[i]=document.getElementById("chN"+i).value;

i++;
и тогда все работает, массивы в цикле создаются правильно!!!
Всем спасибо за помощь!


Часовой пояс GMT +3, время: 18:31.