Параметры функций в JS

UNREALre

Новичок
Параметры функций в JS

Доброго времени суток всем!
У меня тут небольшой вопрос.
Необходимо, чтобы при наведении курсора на картинку, она изменялась на другую. Но картинок много, поэтому передаю в функцию имя исходной картинки и имя той, на которую надо заменить.
Вот код :

function replace(str, str2)
{
form1.str.src=str2;
}
…………
<form name="form1">
<img src="1.jpg" name="image1" width="300" height="300" border="0" onMouseMove="return replace('image1','2.jpg');">
</form>

Но почему-то в функции не происходит обращения к form1.image1, а происходит обращение к form1.str. В чём моя ошибка, подскажите, пожалуйста!

Заранее всем большое спасибо!
 

kruglov

Новичок
Profic
Вы не указали в чем ошибка, вы указали, что написать, чтобы работало. Это неправильно. К тому же первый вариант неправилен.

UNREALre
Ошибок у вас 2.

Одна в том, что обращаясь к полю объекта object.name вы обращаетесь к полю name, а не к полю, имя которого лежит в переменной name. Поскольку в JS объекты являются массивами, то можно написать object[name] (как и посоветовал Profic)

Другая в том, что картинки не являются членами форм, как инпуты, поэтому не входят в их иерархию. Нельзя писать form1.картинка, надо document.картинка (или передавать саму картинку в функцию через this)
 

UNREALre

Новичок
kruglov
Огромное спасибо за пояснение! Ибо я уже и раньше сталкивался с такой проблемой - но так и не понял её до конца!
 

Profic

just Profic (PHP5 BetaTeam)
kruglov
А что вы хотите от меня в 9 часов вечера? :)
Имхо, при умении думать, можно понять в чем была ошибка. Повторюсь, имхо.
Не заметил то, что картинка не принадлежит форме. Однако.
 
Сверху