Javascript.RU

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

Почему переменная не может быть глобальной?
Доброго ночи!

При разборе, казалось бы легкого скрипта, обнаружил для себя не совсем понятный момент.

var planetList = new Array();
  planetList[0] = 'Меркурий';
  planetList[1] = 'Венера';
  planetList[2] = 'Земля';
  planetList[3] = 'Марс';

var wayToSun = new Array();
  wayToSun[0] = '52 млн.км';
  wayToSun[1] = '108 млн.км';
  wayToSun[2] = '149 млн.км';
  wayToSun[3] = '228 млн.км';

var planetDiameter = new Array();
  planetDiameter[0] = '4 880 км';
  planetDiameter[1] = '12 100 км';
  planetDiameter[2] = '12 750 км';
  planetDiameter[3] = '6 800 км';

function doCount(){
   var userText = document.getElementById('planetName').value;
   for( var i = 0; i < planetList.length; i++) {
     if(planetList[i] == userText){
        break;
     }
   }
document.write('<p class="hightlight">'+planetList[i]+'</p>');
document.write('<p class="hightlight">Расстояние до солнца: '+wayToSun[i]+'</p>');
document.write('<p class="hightlight">Диаметр планеты: '+planetDiameter[i]+'</p>');
}



<label for="planetName">Введите название планеты:</label>
<input type="text" id="planetName" name="planetName" />
<input type="button" id="counter" value="Рассчитать" onclick="doCount()"/>


Как я и говорил всё до банальности просто, мат.часть так скажем. Но вот ситуацию почему скрипт перестаёт "работать", когда переменная userText объявляется вне тела функции (если я всё правильно понимаю, в таком случае она является глобальной), я никак не могу осилить.
Ответить с цитированием
  #2 (permalink)  
Старый 25.04.2012, 03:28
Интересующийся
Отправить личное сообщение для LeD4eG Посмотреть профиль Найти все сообщения от LeD4eG
 
Регистрация: 16.04.2012
Сообщений: 14

Так я же, вроде, его описал? если объявить переменную userText вне тела функции, то всё рушится - userText = null, вывод в документ происходит undefined переменными, что вообще мной никак не усваивается.
Ответить с цитированием
  #3 (permalink)  
Старый 25.04.2012, 03:33
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

LeD4eG, покажите, как вы это делаете.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #4 (permalink)  
Старый 25.04.2012, 03:41
Интересующийся
Отправить личное сообщение для LeD4eG Посмотреть профиль Найти все сообщения от LeD4eG
 
Регистрация: 16.04.2012
Сообщений: 14

Вот так:

var planetList = new Array();
	planetList[0] = 'Меркурий';
	planetList[1] = 'Венера';
	planetList[2] = 'Земля';
	planetList[3] = 'Марс';
			
     var wayToSun = new Array();
	wayToSun[0] = '52 млн.км';
	wayToSun[1] = '108 млн.км';
	wayToSun[2] = '149 млн.км';
	wayToSun[3] = '228 млн.км';
			
     var planetDiameter = new Array();
	planetDiameter[0] = '4 880 км';
	planetDiameter[1] = '12 100 км';
	planetDiameter[2] = '12 750 км';
	planetDiameter[3] = '6 800 км';

var userText = document.getElementById('planetName').value;
	
  function doCount(){
    for( var i = 0; i < planetList.length; i++) {
	if(planetList[i] == userText){
        	break;
	}
    }
   document.write('<p class="hightlight">'+planetList[i]+'</p>');
   document.write('<p class="hightlight">Расстояние до солнца: '+wayToSun[i]+'</p>');
   document.write('<p class="hightlight">Диаметр планеты: '+planetDiameter[i]+'</p>');
}
Ответить с цитированием
  #5 (permalink)  
Старый 25.04.2012, 05:51
Интересующийся
Отправить личное сообщение для LeD4eG Посмотреть профиль Найти все сообщения от LeD4eG
 
Регистрация: 16.04.2012
Сообщений: 14

Да, именно так. спасибо большое!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему может не работать? lanzs Firefox/Mozilla 8 04.10.2010 23:15
Сколько максимум символов может быть в 1 Cookie? FirstFrost Общие вопросы Javascript 8 18.07.2010 01:26
Выделить группу чекбоксов. В группе может быть только один чекбокс. JooZ Элементы интерфейса 2 23.12.2009 19:28
Почему может не работать value в textarea Snipe Элементы интерфейса 2 24.02.2009 19:27