#javascript #html
#javascript #HTML
Вопрос:
Я разрабатываю математический веб-сайт, где я хочу создать функцию вычисления LCM (наибольшего общего кратного) для некоторых чисел. Вот мой HTML-код и соответствующий код Javascript.
HTML-код
<h1>LCM of Multiple Numbers</h1>
<textarea id="lcmbox" rows="2" cols="100" placeholder="Enter multiple numbers separated by spaces"></textarea> <br>
<button id="lcmbtn" onclick="lcmAll()">Calculate LCM</button> <br>
<label id="lcmN"></label> <br>
<label id="lcmAllRes"></label> <hr>
Код Javascript
function gcd(a, b) {
if (b == 0)
return a;
else
return gcd (b,a%b);
}
function lcmAll() {
var x = document.getElementById("lcmbox").value;
var arr = x.split(" ");
for (var i=0; i<arr.length; i )
arr[i] = parseInt(arr[i]);
var l = arr[0];
var g;
for (var i=1; i<arr.length; i )
{
var g = gcd(l,arr[i]);
l = (l / g) * arr[i];
}
document.getElementById("lcmN").innerHTML = "Total Numbers : " arr.length;
document.getElementById("lcmAllRes").innerHTML = "Calculated LCM : " l;
}
Проблема в том, что я получаю правильный вывод после тестирования его в локальном браузере. Но после загрузки его на сервер я получаю следующую ошибку,
Неперехваченная ошибка ссылки: lcmAll не определен в HTMLButtonElement.onclick
В чем здесь проблема?
Комментарии:
1. Находится ли определение функции в глобальной области видимости?
2. Но определена ли функция в глобальной области видимости или она вложена внутрь другой функции?
3. Вы уверены, что скрипт загружается? Видите ли вы это на вкладке «Источники» инструментов разработчика?
4. Я бы настоятельно посоветовал вам не пренебрегать правильным использованием фигурных скобок. Это значительно упростило бы диагностику подобных проблем. Я рекомендую, возможно, вставить ваш код в codepen / jsfiddle и посмотреть, работает ли он по-прежнему. Если это так, то вы знаете, что это проблема с сервером; если нет, то вы знаете, что это проблема с вашим кодом.
5. Если некоторые функции из файла сценария существуют, а некоторые нет, вы, вероятно, загружаете более старую версию из кэша. Очистите кэш вашего браузера и повторите попытку.