Ваш код работает отлично, поскольку вы включили его в свой вопрос.Вы можете видеть это здесь: http://jsfiddle.net/jfriend00/kXrDF/.
Это означает, что есть что-то еще не так, что вы не включили в свой вопрос.Возможно, вы можете включить больше своего кода, чтобы мы могли помочь вам найти, что еще может вызывать его.
Чтобы проверить область действия ваших «глобальных» переменных, вы можете установить точку останова в функции add ()и проверьте значения number1, number2 и numAnswer.Если вы еще не выяснили, как установить точку останова и проверить переменные, я настоятельно рекомендую это сделать.Если вы все еще не можете, то вы можете поместить временные тесты в ваш код add (), чтобы сузить суть проблемы:
if (!number1) alert("number1 is not valid");
if (!number2) alert("number2 is not valid");
if (!numAnswer) alert("numAnswer is not valid");
Другая возможность состоит в том, что ваш код выполняется слишком рано, прежде чемстраница была загружена, и в этом случае исходный код не может найти элементы DOM, потому что они еще не существуют.Чтобы это не было проблемой, вам нужно убедиться, что ваш код не запускается до тех пор, пока страница не загрузится.Вы можете сделать это, поместив свой код после элементов страницы или используя один из различных методов для определения времени загрузки страницы и не запуская ваш код, который инициализировал ваши глобальные переменные до тех пор.Фреймворки, такие как jQuery и YUI, имеют встроенные функции, помогающие запускать код после загрузки страницы.