Неопределенная / NaN ошибка в выводе
Это мой первый пост о стековерсии, я обнаружил ошибку в следующем коде, ошибка не отображается в консоли inspect element / JS в firefox, но по какой-то причине вывод после вычисления отображает неопределенную ошибку / NaN. Ввод от пользователя анализируется в Float.
код:
function costtoShip(){
// get input
var weight = parseFloat(document.getElementById("weight")).value ;
var msg;
var cost;
var subtotal;
// calculation
if ( weight >= 0.00 && weight <= 150.00 ) {
cost = 20.00;
}
else if ( weight >= 151.00 && weight <= 300.00 ) {
cost = 15.00;
}
else if ( weight >= 301.00 && weight <= 400.00 ) {
cost = 10.00;
}
subtotal = weight * cost ;
msg = "<div> Total Weight is " + weight + "</div>" ;
msg = msg + "<div> Subtotal is " + subtotal + "</div>" ;
// send output
document.getElementById("results").innerHTML = msg ;
}
4 ответа
var weight = parseFloat(document.getElementById("weight")).value;
Это не как разобрать Float. Вы пытаетесь позвонить value
недвижимость на двоих. Уберите скобки.
var weight = parseFloat(document.getElementById("weight").value);
Я предлагаю использовать console.log(weight);
или другие значения вокруг вашего кода, чтобы вы могли легче определить эти проблемы.
parseFloat(document.getElementById("weight")).value
должно быть
parseFloat(document.getElementById("weight").value)
С практикой, вы будете развивать глаза на такие вещи. А до тех пор добавляйте в свой код операторы alert(), чтобы разобраться в подобных вещах. Просто не забудьте взять их, когда вы закончите. Помните, что делать математику в NaN - это не ошибка, следовательно, нет сообщения об ошибке.
Вы закрыли скобки в первой строке своего кода слишком рано. Вероятно, это должно быть так:
var weight = parseFloat(document.getElementById("weight").value);
Javascript не может проанализировать элемент DOM для плавания.;)
Если weight
значение не соответствует ни одному из указанных условий cost
переменная не будет инициализирована и любые вычисления с использованием undefined
приведет к undefined
,