Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не выводит текст в списке

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Newbee
Отправлено: 23 Ноября, 2013 - 21:36:27
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




JS:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2.  
  3. function showTemps() {
  4.  
  5. var tempByHour = new Array();
  6. tempByHour[0] = 59.2;
  7. tempByHour[1] = 60.1;
  8. tempByHour[2] = 63;
  9. tempByHour[3] = 65;
  10. tempByHour[4] = 62;
  11.  
  12.         for (var i = 0; i < 6; i++) {
  13.  
  14.         var theTemp = tempByHour[i];
  15.         var id = "temp" + i;
  16.         var li = document.getElementById("id");
  17.        
  18.                 if (i == 0) {
  19.                
  20.                 li.innerHTML = "The temperature at noon was " + theTemp;
  21.                
  22.                 } else {
  23.                
  24.                 li.innerHTML = "The temperature at " + i + " was " + theTemp;
  25.                
  26.                 }
  27.        
  28.         }
  29. }
  30.  
  31. window.onload = showTemps();
  32.  


HTML: при загрузке странице нету текста, который должен быть между тегами li. Что не так, где ошибка?

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <h1>Temperatures</h1>
  3. <ul>
  4.         <li id="temp0"></li>
  5.         <li id="temp1"></li>
  6.         <li id="temp2"></li>
  7.         <li id="temp3"></li>
  8.         <li id="temp4"></li>
  9. </ul>
  10.  
 
 Top
IllusionMH
Отправлено: 23 Ноября, 2013 - 21:41:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Newbee, внимательнее
Newbee пишет:
var li = document.getElementById("id");
 
 Top
dXdYdZ
Отправлено: 23 Ноября, 2013 - 21:42:39
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




Ошибка как минимум вот тут:
CODE (javascript):
скопировать код в буфер обмена
  1. var li = document.getElementById("id");

Вместо строки надо передать переменную.
 
 Top
Newbee
Отправлено: 23 Ноября, 2013 - 21:44:01
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




IllusionMH пишет:
Newbee, внимательнее
Newbee пишет:
var li = document.getElementById("id");


Убрал кавычки - не помогло.

(Отредактировано автором: 23 Ноября, 2013 - 21:44:51)

 
 Top
Panoptik
Отправлено: 23 Ноября, 2013 - 21:44:59
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




вам говорят что кавычек быть не должно


-----
Just do it
 
 Top
dXdYdZ
Отправлено: 23 Ноября, 2013 - 21:45:06
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




Кавычек не должно там быть вообще
 
 Top
Panoptik
Отправлено: 23 Ноября, 2013 - 21:45:56
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




а в консоли браузера ошибок нет?


-----
Just do it
 
 Top
dXdYdZ
Отправлено: 23 Ноября, 2013 - 21:48:49
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




кстати, в цикле должно быть не
CODE (javascript):
скопировать код в буфер обмена
  1. for (var i = 0; i < 6; i++)

а
CODE (javascript):
скопировать код в буфер обмена
  1. for (var i = 0; i < 5; i++)

Там ведь 5 элементов в массиве, и li тоже 5
 
 Top
Newbee
Отправлено: 23 Ноября, 2013 - 21:51:22
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Panoptik пишет:
а в консоли браузера ошибок нет?


Да, в консоле есть какие-то ошибки.
А у вас работает данный код? Все отображает корректно?
(Добавление)
dXdYdZ пишет:
кстати, в цикле должно быть не
CODE (javascript):
скопировать код в буфер обмена
  1. for (var i = 0; i < 6; i++)

а
CODE (javascript):
скопировать код в буфер обмена
  1. for (var i = 0; i < 5; i++)

Там ведь 5 элементов в массиве, и li тоже 5



li 5 штук, там же счет начинается с 0. У меня там все верно. Если i будет равно 5, то дальше цикл не будет выполняться.
 
 Top
IllusionMH
Отправлено: 23 Ноября, 2013 - 21:57:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Newbee, тут вызов функции window.onload = showTemps();, а не присвоение
 
 Top
dXdYdZ
Отправлено: 23 Ноября, 2013 - 21:57:48
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




Вот так всё работает:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <script>
  4. function showTemps() {
  5.  
  6. var tempByHour = new Array();
  7. tempByHour[0] = 59.2;
  8. tempByHour[1] = 60.1;
  9. tempByHour[2] = 63;
  10. tempByHour[3] = 65;
  11. tempByHour[4] = 62;
  12.  
  13.         for (var i = 0; i < 5; i++) {
  14.  
  15.        var theTemp = tempByHour[i];
  16.        var id = "temp" + i;
  17.        var li = document.getElementById(id);
  18.        alert(li);
  19.      
  20.                if (i == 0) {
  21.              
  22.                li.innerHTML = "The temperature at noon was " + theTemp;
  23.              
  24.                } else {
  25.              
  26.                li.innerHTML = "The temperature at " + i + " was " + theTemp;
  27.              
  28.                }
  29.      
  30.        }
  31. }
  32.  
  33. //window.onload = showTemps();
  34. </script>
  35. </head>
  36. <body onload="showTemps()">
  37.     <h1>Temperatures</h1>
  38.     <ul>
  39.         <li id="temp0">1</li>
  40.         <li id="temp1">2</li>
  41.         <li id="temp2">3</li>
  42.         <li id="temp3">4</li>
  43.         <li id="temp4">5</li>
  44.     </ul>
  45. </body>
  46. </html>

Разница в том, что я прицепил функцию к body onload, а не window onload. И всё-таки меньше 5, потому что последний элемент имеет номер 4.

(Отредактировано автором: 23 Ноября, 2013 - 22:14:47)

 
 Top
Newbee
Отправлено: 23 Ноября, 2013 - 22:01:33
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




IllusionMH пишет:
Newbee, тут вызов функции window.onload = showTemps();, а не присвоение


скобки убрал и, о чудо, заработало! А в чем прикол, можете объяснить?
(Добавление)
dXdYdZ пишет:
Разница в том, что я прицепил функцию к body onload, а не window onload. И всё-таки меньше 5, потому что последний элемент имеет номер 4.


Последний элемент имеет номер 5. Так что я все правильно написал i < 6, но можно было бы и так написать i <= 5, что тоже самое.
 
 Top
IllusionMH
Отправлено: 23 Ноября, 2013 - 22:09:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Newbee, в том что со скобками происходит вызов функции, ДО того как вообще появился документ. Если почитаете сообщения об ошибках - там говорится что элементы не найдены, а это т.к. тела вообще нет.

Если убрать скобки, то обработчик события присоится, и будет выполнен по соответствующему событию
 
 Top
Newbee
Отправлено: 23 Ноября, 2013 - 22:10:54
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




IllusionMH пишет:
Newbee, в том что со скобками происходит вызов функции, ДО того как вообще появился документ. Если почитаете сообщения об ошибках - там говорится что элементы не найдены, а это т.к. тела вообще нет.

Если убрать скобки, то обработчик события присвоится, и будет выполнен по соответствующему событию


Понял, спасибо! Я только вот начал изучать этот язык. Что скажете, мощная штука?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB