Помогите начинающему программисту ;)
Всем доброго времени суток! я недавно начал изучать Javascript и захотел попробоваться на простейших задачках. захотел сделать что то типа гадалки, которая отвечает на вопросы типа "да, нет". написал, но почему то не работает. помогите разобраться в чем дело и подскажите еще пару задачек, дабы повысить уровень владения языком.
<html> <head> <title> Узнай правду </title> </head> <body> <textarea>Задайте свой вопрос</textarea> <script language="JavaScript" > var a=new Array(); var rand=new Date(); fraza[0]='По любому'; fraza[1]='к сожалению этому не бывать'; fraza[2]='очень даже может быть'; fraza[3]='вероятность маленькая, но все таки может быть'; q=(rand.getSeconds())%fraza.length; </script> <button onclick="javascript:alert(fraza[q]);">Узнать ответ</button> </body> </html> вот все что написал |
Много ошибок и неточностей:
1) onClick не требует указания протокола "javascript:". Его указывать следует только в подстановке вместо url, например в аттрибуте href элемента <a>. 2) JavaScript выполняется последовательно только один раз, поэтому вам, в данном случае, нужно создавать функции, которые потом будут вызываться по определённым событиям. 3) Для того, чтобы получить целое число следует пользоваться генератором случайных чисел, а целочисленное деление, которое вы использовали, в данном случае работает неверно: вы могли бы легко получить числа вне диапазона 0-3. Лучше использовать подобный способ получения случайного числа: parseInt(Math.random()*4) Math.random() возвращает случайное число от 0 до 1, умножение на 4 увеличивает диапазон на отрезок от 0 до 3. А parseInt приводит это число к целому виду. Конечно связи с введенным текстом не будет никакой, но зато работает ;) |
onclick="alert(fraza[q]);" |
Андрей Параничев, в вашем сообщении полезен только первый пункт. Второй пункт, скорее всего, не ставился в задаче, а третий прекрасно работает и у ТС (% -- это не целочисленное деление, а остаток от деления).
|
Kolyaj,
Мда, мне видимо пора ложиться спать :) Мне, почему то, показалось что fraza.length это длина текста записанного в textarea. От этого второе и третье замечание. Все верно, моя ошибка. |
Цитата:
|
Часовой пояс GMT +3, время: 22:43. |