输出中出现未定义/NaN 错误

undefined / NaN error in output

这是我在 Whosebug 上的第一个 post,我在以下代码中遇到错误,在 firefox 中检查元素/JS 控制台没有显示错误,但由于某种原因计算后的输出显示未定义/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 ;
}
var weight = parseFloat(document.getElementById("weight")).value;

这不是parseFloat的方法。您正在尝试调用 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