Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обращение к элементам текущего блока (https://javascript.ru/forum/events/29022-obrashhenie-k-ehlementam-tekushhego-bloka.html)

gJam 11.06.2012 16:33

Обращение к элементам текущего блока
 
div'ы с внутри них вложенными инпутами генерируются с помощью жс,
на один из инпутов повешено событие onBlur.
Суть вопроса состоит в том, что как только в одного инпута "соскакивает" фокус, то выполнялось след. дейсвтие:
получаю с помощью innerHTML все данные из текущего дива в строку:

<div>
<input>
<input>
..
<input> <инпут на котором onBlur
<input> <инпут в который все выводится вида: input1+..+inputn
</div>
следующие сгенерированные дивы

проблема которую я не могу решить состоит в:
я нахожу уникальный идентификатор родительского дива, получаю все элементы с тегом инпут (т.е. обозначаю "фронт" работ (инпутов точное кол-во=4)) и достаю из них данные.. и засовываю в результирующий инпут..
весь механизм работает на первом снегерированном блоке, на остальных же сей механизм не работает..
предоставляю код метода, которым я это "сотворяю"..

(в el получаю значение <input onblur="func(this)">)

   //el.id <id answer

    var obj = el.parentNode;
    while (obj.tagName != 'DIV') obj = obj.parentNode;
    //obj.id <id div (every unique) выводит id ида (для проверки, промеж. результат) выводит корректно
    alert(obj.id);

    var div = document.getElementById(obj.id)
        var elems = div.getElementsByTagName('input')
        //выводит все id input-элементов внутри родительского дива
        for(var i=0; i<elems.length; i++) alert(elems[i].id);

выше изложеный код позволяет получить нам все id элементов внутри дива (независимо от кол-ва) без дальнейшего присвоения (ну это легко),
но если изменить на alert(document.getElementById(elems[i].id));
(последняя строка), то значения я не могу получить. и соотв. позже присвоить..

прошу помощи в советах как довести до ума, а за код вообще буду благодарен. (решаю без jQuery и сторонних фреймворов)

gJam 11.06.2012 17:16

решено
тему можно закрыть
причина: невнимательность


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