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


Автор: dimka20 2.10.2006, 01:03
как передать имя элемента в функцию?
вот пример [неработающего] кода:
Код

<script language="JavaScript">
     function myfunction (name)  {
          with(document.name)  {
               style.posLeft = 100;
               style.posTop = 100;
               style.position = "absolute"; 
          }
     }
</script>

<body onLoad="myfunction(myname)">
<img name="myname" src="s.jpg"> 
</body>

Автор: Innuendo 2.10.2006, 07:06
я бы сделал так:
Код

<script language="JavaScript">
     function myfunction (name)  {
          with(document.getElementById(name))  {
               style.posLeft = 100;
               style.posTop = 100;
               style.position = "absolute"; 
          }
     }
</script>
<body onLoad="myfunction('myname')">
<img id="myname" src="s.jpg"> 
</body>

Автор: skyboy 2.10.2006, 08:41
если уж сильно надо, то, быть может, прокатит так:
Код

<script language="JavaScript">
     function myfunction (name)  {
          with(document[name])  {
               style.posLeft = 100;
               style.posTop = 100;
               style.position = "absolute"; 
          }
     }
</script>
<body onLoad="myfunction('myname')">
<img name="myname" src="s.jpg"> 
</body>

Обрати внимание на кавычки, и делающие myname в body onload строкой, а не переменной.
Или можно так:
Код

<body onLoad="myfunction(document.myname.name)">

Но вариант, предложенный Innuendo, намного корректнее, ибо стандарт. В смысле - DOM.

Автор: Innuendo 2.10.2006, 12:10
skyboy, я тоже хотел ему написать так, как ты.. но я просто не уверен насчёт кроссбраузерности document[name] =) поэтому решил лучше не писать (да и я не использую это никогда)

Автор: skyboy 2.10.2006, 15:38
Innuendo, и я не уверен. сейчас - то, может, везде работает, а вот лет через 5... просто пока человек не осознает прелестей унифицированной обработки, пока не поймет, в чем сила стандарта(любого стандарта!), то вложить ему в голову это не получится. Разво что своим авторитетом втиснуть, что не есть хорошо smile

Автор: Sardar 4.10.2006, 20:00
Вы млин ещё скрипты лет так 15 назад вспомните  smile 

Всем забыть document.name, упоминание этой конструкции ставить на один уровень с выражаться матерно! И тогда скрипты ваши глючить на новых браузерах точно не будут smile

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