Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.08.2010, 13:06
Интересующийся
Отправить личное сообщение для Marv Посмотреть профиль Найти все сообщения от Marv
 
Регистрация: 09.08.2010
Сообщений: 19

ошибка в ie 6-7 с getElementById
Недавно освоил javascript, сегодня понадобился простой скрипт, который меняет местами картинки, но на первых порах столкнулся с ошибкой.
Ищу элемент по его id, во всех браузерах кроме ie код работает. В ie: объект не поддерживает данное свойство или метод.
function change(id)
	{		
		color=document.getElementById(id);
		current=document.getElementById('replace');//ругается на эту строку
		
		current.src=color.src;
	}

функция вызывается так:
<td>
  <div id="other-images">
    <img onclick="change(this.id)" id="color0" src="/img/2.jpg" border="0" alt="some img">					
  </div>
</td>
<td>
  <div id="main-image">
   <img id="replace" src="/img/1.jpg" border="0" alt="some img">
  </div>
</td>

html проверил: одинаковых id нет, имени такого нет. Ругается вообще на любой вызов document.getElementById('//с любым строковым параметром')
Ответить с цитированием
  #2 (permalink)  
Старый 09.08.2010, 13:34
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Оффтоп: не проще ли сделать так:
<img onclick="document.getElementById('replace').src=this.src;" src="/img/2.jpg" border="0" alt="some img">

По теме, я хз..
Ответить с цитированием
  #3 (permalink)  
Старый 09.08.2010, 15:10
Интересующийся
Отправить личное сообщение для Marv Посмотреть профиль Найти все сообщения от Marv
 
Регистрация: 09.08.2010
Сообщений: 19

Проще, но я планировал на функцию больше операций возложить. А на document.getElementById('replace').src=this.src; всё равно ругается
Ответить с цитированием
  #4 (permalink)  
Старый 09.08.2010, 15:54
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Тогда не нужно передавать в функция this.id, чтобы потом через него получать элемент. Т.е.
function change(elem) {		
  current=document.getElementById('replace');
  current.src=elem.src;
}

И вызывайте функцию onclick="change(this)"
Ответить с цитированием
  #5 (permalink)  
Старый 09.08.2010, 18:51
Интересующийся
Отправить личное сообщение для Marv Посмотреть профиль Найти все сообщения от Marv
 
Регистрация: 09.08.2010
Сообщений: 19

Сообщение от Sweet Посмотреть сообщение
Тогда не нужно передавать в функция this.id, чтобы потом через него получать элемент. Т.е.
function change(elem) {		
  current=document.getElementById('replace');
  current.src=elem.src;
}

И вызывайте функцию onclick="change(this)"
Спасибо за подсказку, кстати с ie тоже разобрался, надо было var добавить:
var current = document.getElementById('replace');
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В Firefox3 в консоли ошибок вылазит ошибка uonax Ваши сайты и скрипты 6 15.06.2010 19:45
Cookies и ошибка клиента 400 Bad Request Roman-NN Общие вопросы Javascript 4 02.06.2010 13:06
То-ли лыжи не едут, толи... возможно ошибка в коде. AzriMan Общие вопросы Javascript 19 18.05.2009 16:07
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22
IE: неизвестная ошибка выполнения _Kpot_ Internet Explorer 1 03.04.2008 11:00