Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Доступ к элементу по id


Автор: Fedor 14.1.2007, 15:20
Привет.
Такая проблема. Если я в JS добавляю элемент по нажатию на кнопку(через AJAX) таким способом:
Код

...
   el = document.getElementById( xmlHttp.responseText );
...
   oImg = document.createElement('img');
   oImg.src = 'path';
   oImg.id='imgDone';
   el.insertBefore( oImg, el.firstChild );
...

Добавляется все нормально.
Но потом если я сразу нажимаю на кнопку, делающее обратное действие (т.е. удаляет элемент):
Код

   el = document.getElementById( xmlHttp.responseText );
   if ( el.childNodes[1].id == 'imgDone' ) {
      el.removeChild( el.childNodes[1] );
   }

то элемент не видно (например, id - undefined).

З.Ы. Если элемент уже был при загрузке страницы, до удаляется он нормально.

Как быть? smile

Автор: Nicholas_S 14.1.2007, 16:19
Fedor, если у тебя известен id элемента, который ты пытаешься удалить ('imgDone'), то возьми ссылку сразу на него, без лишних действий с childNodes:

Код

var img = document.getElementById('imgDone');

затем удали объект img.

Автор: Sardar 16.1.2007, 01:53
Fedor, id вещь уникальная на странице smile
Для ИЕ возможно ещё нужно создавать элемент через createElement("<img id='xxxx'>"); что бы он по ID был виден.

Автор: Fedor 16.1.2007, 18:05
Цитата(Sardar @  16.1.2007,  01:53 Найти цитируемый пост)
Fedor, id вещь уникальная на странице

да, вот кстати, возможно поэтому проблема. Я это уже осознал, но пока не успел проверить - сессией увлекся smile. Сделаю, отпишусь.

Автор: Fedor 19.1.2007, 00:44
Да, действительно. Проблема была именно в этом. Я при генерации не обращал внимание на то, что одинаковые айдишники-то плодятся smile

Nicholas_SSardar, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)