Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: JavaScript - присвоение значения переменой
 
 автор: freeing   (12.06.2008 в 17:10)   письмо автору
 
 

хочу упростить код:

из этого:


    document.getElementById("div_0").style.left            = left_0;
    document.getElementById("div_1").style.left            = left_1;
    document.getElementById("div_2").style.left            = left_2;
    document.getElementById("div_3").style.left            = left_3;
    document.getElementById("div_4").style.left            = left_4;


сделать это:


    for(var i = 0; i < 5; i++)
    {    
        document.getElementById("div_" + i +"").style.left = left_0;
    }


ВОПРОС!

как к
left_0;

добавить
i


Спасибо!

   
 
 автор: sim5   (12.06.2008 в 17:35)   письмо автору
 
   для: freeing   (12.06.2008 в 17:10)
 

Укажите эти значения в массиве и извлекайте их по значению итерации цикла.

   
 
 автор: freeing   (12.06.2008 в 17:37)   письмо автору
 
   для: sim5   (12.06.2008 в 17:35)
 

а пример можно?

   
 
 автор: sim5   (12.06.2008 в 17:46)   письмо автору
 
   для: freeing   (12.06.2008 в 17:37)
 


<script>
  var left = new Array;
  left[0] = 200;
  left[1] = 220;
  left[2] = 100;
  left[3] = 180;
  left[4] = 240;

  for(var i = 0; i < 5; i++) {     
     document.getElementById("div_" + i +"").style.left = left[i]; 
  }
</script>

   
 
 автор: PAT   (12.06.2008 в 17:38)   письмо автору
 
   для: freeing   (12.06.2008 в 17:10)
 

for (var i = 0; i < 5; i++)
    {    
        document.getElementById ("div_" + i).style.left = eval ("left_" + j);
    } 
Работать, конечно, будет, но... бред полный:-)

   
 
 автор: freeing   (12.06.2008 в 17:43)   письмо автору
 
   для: PAT   (12.06.2008 в 17:38)
 

почему?

   
 
 автор: PAT   (12.06.2008 в 18:03)   письмо автору
 
   для: freeing   (12.06.2008 в 17:43)
 

Во-первых, потому, что я сделал ошибку, и вместо i написал j - надо eval ("left_" + i)

А во-вторых... использование метода eval в скрипте - признак непрофессионализма.

Это как раньше, в древних языках программирования (например, в Fortran4 или в PL1, и даже в Алмире...) все операторы писались отдельно на каждой строке и строки нумеровались последовательными номерами (метками). И имелся оператор "безусловного перехода" GOTO метка (перед которым, кстати, тоже надо было ставить свою метку).
Так вот, был четкий критерий профессионализма программистов: если использовался в программе хоть один оператор GOTO, значит программист - лох.

   
 
 автор: freeing   (12.06.2008 в 18:11)   письмо автору
 
   для: PAT   (12.06.2008 в 18:03)
 

==80). так зачем ты eval предложил?

   
 
 автор: freeing   (12.06.2008 в 18:14)   письмо автору
 
   для: freeing   (12.06.2008 в 18:11)
 

sim5 <? СПАСИБО!

   
 
 автор: PAT   (12.06.2008 в 18:31)   письмо автору
 
   для: freeing   (12.06.2008 в 18:11)
 

Задача ТАК была поставлена, потому и предложил :-)

Кстати, чтобы реально работало не только в MSIE, необходимо ещё и пикселы добавить:
document.getElementById ("div_" + i).style.left = left [i] + 'px';  
или
document.getElementById ("div_" + i).style.left = eval ("left_" + i) + 'px'


PS. Плюс пустота в данном случае в методе getElementById совершенно не нужна.

   
 
 автор: sim5   (12.06.2008 в 19:36)   письмо автору
 
   для: PAT   (12.06.2008 в 18:31)
 

Ой, да, действительно забыл рх указать. Только не понятно, нафига это нужно, если для пяти элементов всего, вигоднее без цикла, чем все это городить - урезаем запись в одном месте, добавляем в другом. )

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования